<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangking1111的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangking1111</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangking1111]]></copyright><item><title><![CDATA[SQL注入之绕过过滤与WAF绕过学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/164152159</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/164152159</guid><author>wangking1111</author><pubDate>Sat, 29 Aug 2026 15:15:00 +0800</pubDate><description><![CDATA[例如 id=1 AND 1=1 可以改写为 id=1 && 1=1，username=‘admin’ OR ‘1’=‘1’ 改写为 username=‘admin’ || ‘1’=‘1’，ascii(substr(database(),1,1))=109 改写为 ascii(substr(database(),1,1)) LIKE 109。如果过滤了 AND 和 OR，可以使用 id=1 && 1=1，id=1 || 1=2，或者使用 id=1 和 id=1-1 这种算术运算来判断。= 可以用 <>、!]]></description><category></category></item><item><title><![CDATA[SQL注入之文件读写操作学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/164152086</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/164152086</guid><author>wangking1111</author><pubDate>Fri, 28 Aug 2026 19:10:56 +0800</pubDate><description><![CDATA[它的核心逻辑是：在成功注入后，利用数据库的文件操作功能，读取服务器上的敏感文件（如配置文件、源码、密码文件等），或者向服务器写入恶意文件（如WebShell、反弹Shell脚本等），从而获取服务器权限或进一步渗透。LOAD_FILE() 是MySQL中用于读取文件的函数，它接受一个文件路径作为参数，返回文件的内容（以字符串形式）。访问 http://靶场/shell.php，使用蚁剑、菜刀等工具连接，获取服务器控制权。然后访问 http://靶场/dvwa/test.php 查看是否写入成功。]]></description><category></category></item><item><title><![CDATA[SQL注入之数据库信息收集学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163991200</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163991200</guid><author>wangking1111</author><pubDate>Mon, 24 Aug 2026 10:00:00 +0800</pubDate><description><![CDATA[数据库信息收集，也叫数据库指纹识别，是SQL注入过程中一个非常重要的环节。在成功发现注入点后，攻击者不能直接“一步登天”拿到所有数据，而是需要先了解目标数据库的类型、版本、用户权限、数据库结构等信息，再根据这些信息选择合适的注入手法和Payload。information_schema 是MySQL中一个特殊的系统数据库，它存储了所有其他数据库的元数据信息。掌握 information_schema 的结构是进行SQL注入信息收集的关键。在注入点中使用数据库特有的版本函数，根据响应内容判断数据库类型。]]></description><category></category></item><item><title><![CDATA[SQL注入之Cookie注入学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163990892</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163990892</guid><author>wangking1111</author><pubDate>Sun, 23 Aug 2026 09:37:26 +0800</pubDate><description><![CDATA[如果Cookie中没有明显的注入点，可以尝试在Cookie中伪造用户身份（如将 user_id=1 改为 user_id=2），观察是否可以越权查看其他用户数据，这本身也是一种安全测试。第一步，在DVWA的SQL Injection模块中输入 1 查询，使用Burp Suite捕获请求，查看Cookie中是否有用户相关的字段，如 user_id 或类似标识。第二步，对Cookie值进行解码和修改。Cookie注入的防御思路与其他注入类型一致，核心是：不要信任任何从客户端接收的数据，包括Cookie。]]></description><category></category></item><item><title><![CDATA[SQL注入之Post注入学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163912383</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163912383</guid><author>wangking1111</author><pubDate>Fri, 21 Aug 2026 12:30:00 +0800</pubDate><description><![CDATA[在Post注入中，攻击数据被放在POST请求的参数中提交给服务器，服务器端接收这些参数后拼接到SQL语句中执行，如果未做有效防御，就会触发注入漏洞。如果在用户名框输入 admin’ AND ‘1’=‘1，密码随意，登录成功进入用户页面。测试：admin’ AND ‘1’=‘1 登录成功（或显示“登录成功”），admin’ AND ‘1’='2 登录失败（或显示“登录失败”）。登录界面，输入 admin’ AND ‘1’=‘1 登录成功，admin’ AND ‘1’='2 登录失败，说明存在注入。]]></description><category></category></item><item><title><![CDATA[SQL注入之HTTP头注入学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163912214</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163912214</guid><author>wangking1111</author><pubDate>Thu, 20 Aug 2026 11:06:19 +0800</pubDate><description><![CDATA[它的核心逻辑与之前学的所有注入都不同，前面几种注入（联合查询、报错注入、布尔盲注、时间盲注、堆叠查询、宽字节注入、二阶注入）都是通过GET参数或POST参数传递恶意数据，而HTTP头注入是通过HTTP请求头字段传递恶意数据。正常情况下页面正常显示，而在User-Agent中加入一个单引号 ’ 后，页面出现MySQL报错信息，说明单引号被直接拼入了SQL语句，且错误信息直接暴露在页面上，这为后续利用提供了极大便利。首先尝试在User-Agent中加上单引号 '，如果页面出现MySQL报错，即可确认注入点。]]></description><category></category></item><item><title><![CDATA[SQL注入之二阶注入学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163718335</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163718335</guid><author>wangking1111</author><pubDate>Mon, 17 Aug 2026 13:30:00 +0800</pubDate><description><![CDATA[一、什么是二阶注入二阶注入，也叫二次注入，是SQL注入中比较特殊的一种类型。它和一阶注入的根本区别在于：一阶注入是攻击数据在第一次被处理时就触发了恶意逻辑，而二阶注入是攻击数据先被正常存储到数据库中，然后在后续的某个业务环节被取出并使用，此时才触发注入。二阶注入的适用场景二阶注入在以下场景中特别常见：用户注册功能：注册时使用恶意用户名，后续修改密码或查询个人信息时触发评论/留言功能：评论内容被存储，后台管理员查看评论时触发个人信息修改功能：用户信息先被存储，后续被其他操作查询时触发。]]></description><category></category></item><item><title><![CDATA[SQL注入之宽字节注入学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163668222</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163668222</guid><author>wangking1111</author><pubDate>Fri, 14 Aug 2026 10:30:00 +0800</pubDate><description><![CDATA[UTF-8中的多字节字符有固定的格式（第一个字节的格式决定了后续字节的数量），反斜杠 0x5C 无法与前面的字节组合成一个合法的UTF-8字符。简单来说，当数据库使用GBK、GB2312、SJIS等多字节字符集时，程序在处理用户输入时可能会错误地将两个字节识别为一个汉字字符，导致原本应该被转义的特殊字符（如单引号）没有被正确转义，从而造成注入。反斜杠 \ 的十六进制编码是 0x5C。在GBK编码中，中文字符由两个字节组成，第一个字节的范围是 0x81-0xFE，第二个字节的范围是 0x40-0xFE。]]></description><category></category></item><item><title><![CDATA[SQL注入之堆叠查询注入学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163668007</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163668007</guid><author>wangking1111</author><pubDate>Wed, 12 Aug 2026 10:15:00 +0800</pubDate><description><![CDATA[使用 mysqli 扩展时默认支持多语句执行（通过 mysqli_multi_query() 函数），而使用 PDO 时默认不支持，需要在连接时设置 PDO::MYSQL_ATTR_MULTI_STATEMENTS 为 true 才能启用。与之前学过的所有注入类型都不同，堆叠查询注入的目标不再是“获取数据”，而是“执行多条任意SQL语句”。最根本的防御措施是禁止多语句执行。在数据库连接配置中，不启用多语句执行功能，或者直接使用不支持多语句执行的API（如PDO默认配置），可以从根本上杜绝堆叠查询注入。]]></description><category></category></item><item><title><![CDATA[时间盲注学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163474518</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163474518</guid><author>wangking1111</author><pubDate>Mon, 10 Aug 2026 12:30:00 +0800</pubDate><description><![CDATA[它的核心逻辑是：页面即没有数据回显，也没有报错回显，更不会根据条件真假返回不同的页面状态，是完全的“盲盒”状态。在这种场景下，只能通过构造条件判断语句，当条件为真时让数据库执行一个耗时操作（如 sleep()），通过观察页面响应时间的变化来判断条件的真假，从而逐位猜解出数据。在网络波动较大的情况下，正常的请求延迟可能被误判为注入延时，导致数据猜解错误。与 sleep() 相比，benchmark() 的优点是不依赖 sleep() 函数是否存在，缺点是延时时间难以精确控制，受服务器性能影响较大。]]></description><category></category></item><item><title><![CDATA[布尔盲注学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163438736</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163438736</guid><author>wangking1111</author><pubDate>Fri, 07 Aug 2026 10:30:00 +0800</pubDate><description><![CDATA[它的核心逻辑是：页面不会返回任何数据库中的具体数据，也不会返回数据库报错信息，只会根据SQL语句执行结果的“真”或“假”返回两种不同的页面状态。攻击者通过构造逻辑判断语句，根据页面返回的差异，逐位猜解出数据库中的数据。猜解一个字符平均需要7-8次请求（二分法），一个完整的数据库名通常需要几十次请求，整库脱出可能需要成百上千次请求，手动操作几乎不可能完成。布尔盲注的核心思想是：构造一个条件判断语句，让数据库执行并返回真或假，然后根据页面的不同表现来判断条件的真假。如果数据库名的第一个字符是 m，则条件为真。]]></description><category></category></item><item><title><![CDATA[报错注入学习笔记]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163367129</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163367129</guid><author>wangking1111</author><pubDate>Wed, 05 Aug 2026 13:00:00 +0800</pubDate><description><![CDATA[看页面上哪些位置显示了数字，那些位置就是可用的显示位。查指定库的所有表名：UNION SELECT 1, (SELECT GROUP_CONCAT(table_name) FROM information_schema.tables WHERE table_schema='库名')查指定表的所有列名：UNION SELECT 1, (SELECT GROUP_CONCAT(column_name) FROM information_schema.columns WHERE table_name='表名')]]></description><category></category></item><item><title><![CDATA[SQL 联合查询注入]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163327115</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163327115</guid><author>wangking1111</author><pubDate>Mon, 03 Aug 2026 13:30:00 +0800</pubDate><description><![CDATA[AND 1=2 使原始查询条件永假，原始查询返回空结果集，页面上显示的内容完全来自 UNION SELECT 部分。此时观察页面中数字 1 和 2 的显示位置，即可确定哪些字段位可以被利用。通过递增 ORDER BY 后的数字，当数字超过实际列数时，查询会因“找不到对应列”而报错。在确认显示位后，将对应位置的数字替换为 SQL 函数或子查询语句，即可获取目标数据。获取表名后再查询列名及具体数据，即可完成完整的数据脱出。确定字段数后，需要判断页面中哪些位置可以显示查询结果。]]></description><category></category></item><item><title><![CDATA[2026.7.27学习总结]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163239503</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163239503</guid><author>wangking1111</author><pubDate>Thu, 30 Jul 2026 10:28:44 +0800</pubDate><description><![CDATA[在分析 ’ or ‘1’=‘1’ –  这个Payload时，一开始没理解为什么末尾要加 – （空格+注释符）。查阅资料后明白，--  在SQL中是注释符号，作用是把原始SQL语句中后面多余的查询条件（如密码校验）全部注释掉，确保注入的语句能完整执行。登录绕过：通过构造 ’ or ‘1’='1 这样的Payload，使得查询语句的WHERE条件被改为永真（1=1），导致数据库返回所有用户数据，从而绕过认证机制。这让我直观理解了为什么开发时必须对用户输入进行过滤。2. 遇到的主要问题 & 解决思路。]]></description><category></category></item><item><title><![CDATA[SQL注入学习]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163239415</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163239415</guid><author>wangking1111</author><pubDate>Thu, 30 Jul 2026 10:28:27 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Web前端学习笔记（一）：HTML基础标签总结]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163238298</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163238298</guid><author>wangking1111</author><pubDate>Mon, 27 Jul 2026 11:49:32 +0800</pubDate><description><![CDATA[页面标题]]></description><category></category></item><item><title><![CDATA[Hello World - 个人博客开通]]></title><link>https://blog.youkuaiyun.com/wangking1111/article/details/163238258</link><guid>https://blog.youkuaiyun.com/wangking1111/article/details/163238258</guid><author>wangking1111</author><pubDate>Mon, 27 Jul 2026 11:47:42 +0800</pubDate><description><![CDATA[这里将主要用于记录网络安全知识如Web前端/后端开发的学习笔记、项目踩坑经验和技术思考。个人技术博客正式开通🎉。]]></description><category></category></item></channel></rss>