實驗吧CTF刷題記錄(web篇二)
阿新 • • 發佈:2019-01-10
8.上傳繞過
直接上傳.php會被攔截。嘗試上傳圖片馬,能上傳但不符合題目要求。
嘗試bp抓包改字尾名無果,並非在客戶端javascript驗證。
嘗試截斷路徑繞過,上傳1.jpg檔案,bp抓包,路徑upload後新增1.php空格,將hex中空格20改為00,forward,成功繞過。
9.FALSE
PHP程式碼審計hint:sha1函式你有認真瞭解過嗎?聽說也有人用md5碰撞o(╯□╰)o
格式:CTF{}
原始碼:
<?phpif (isset($_GET['name']) and isset($_GET['password'])) {
if ($_GET['name'] == $_GET['password'])
echo '<p>Your password can not be your name!</p>';
else if (sha1($_GET['name']) === sha1($_GET['password']))
die('Flag: '.$flag);
else
echo '<p>Invalid password.</p>';
}
else{
echo '<p>Login first!</p>';
?>
按程式碼中的思路非常難找出碰撞,但是sha1()函式預設的傳入引數型別是字串型。加上題目標題false可以想到構造FALSE===FALSE拿到flag
位址列修改name[]=xxx,password[]=zzz;
10.Guess Next Session
寫個演算法沒準就算出來了,23333hint:你確定你有認真看判斷條件?
格式:CTF{}
<?phpsession_start();
if (isset ($_GET['password'])) {
if ($_GET['password'] == $_SESSION['password'])
die ('Flag: '.$flag);
else
print '<p>Wrong guess.</p>';
}
session在判斷時是沒有值的,構造第二個if語句左右均為空值。
bp抓包,將PHPSESSID刪除,並將輸入的密碼置空,拿到flag。
11.Once More
題目提示2 科學記數法,由於要使密碼長度小於8或值大於9999999,可以使用1e8或1e9滿足條件。 正確pass:1e9%00*-* 得到flag。12.忘記密碼了
<meta name="admin" content="[email protected]" /> <meta name="editor" content="Vim" />管理員郵箱以及使用的是vim編輯器。 看了大神writeup,得知讀取.submit.php.swp (看評論說burpsuite抓包可以看到submit - - 無奈我沒找到。) 訪問http://ctf5.shiyanbar.com/10/upload/.submit.php.swp
if(!empty($token)&&!empty($emailAddress)){ if(strlen($token)!=10) die('fail'); if($token!='0') die('fail'); $sql = "SELECT count(*) as num from `user` where token='$token' AND email='$emailAddress'"; $r = mysql_query($sql) or die('db error'); $r = mysql_fetch_assoc($r); $r = $r['num']; if($r>0){ echo $flag; }else{ echo "澶辮觸浜嗗憖"; } }