1. 程式人生 > >BugkuCTF Webb部分的幾道題

BugkuCTF Webb部分的幾道題

Web4

url解碼:url編碼,由%和數字構成 將程式碼用url進行解碼,

var p1 = 'function checkSubmit(){
var a=document.getElementById("password");
if("undefined"!=typeof a){
if("67d709b2b';
var p2 = 'aa648cf6e87a7114f1"==a.value)
return!0;
alert("Error");
a.focus();
return!1
}
}document.getElementById("levelQuest").onsubmit=checkSubmit;';
eval(unescape(p1) + unescape('54aa2' + p2));

unescape() 函式:可對通過 escape() 編碼的字串進行解碼。該函式的工作原理是這樣的:通過找到形式為 %xx 和 %uxxxx 的字元序列(x 表示十六進位制的數字),用 Unicode 字元 \u00xx 和 \uxxxx 替換這樣的字元序列進行解碼。

eval()函式:eval() 函式可計算某個字串,並執行其中的的 JavaScript 程式碼。

eval("2+3")					返回5

所以就是拼接,拼成這個輸進去 67d709b2b54aa2aa648cf6e87a7114f1,得到writeup

輸入密碼檢視flag

五位數字密碼,直接到burp suite裡 抓包,傳送到Intruder,設定payloads type為numbers, 到options裡設定個多執行緒就好

點選一百萬次

檢視原始碼,還真要一百萬次才能蹦出flag,

if(clicks >= 1000000){
          	var form = $('<form action="" method="post">' +
						'<input type="text" name="clicks" value="' + clicks + '" hidden/>' +
						'</form>');
						$('body').append(form);
						form.submit();

好吧,方式post,使用外掛Hackbar,在第一個框裡貼上地址,勾上Enable Post data,又出現一個框,寫上:

clicks=1000000000,(隨便多少,大於一百萬就ok)

這是用post方式傳進去一個引數, web基礎$_POST也是這種做法