這道題先用敏感檔案洩露工具掃到了.git檔案洩露,於是用githack將檔案還原進行**審計。。。
漏洞處在api.php這個檔案
function buy($req)
} switch ($same_count)
$money += $prize - 2;
$_session['money'] = $money;
response(['status'=>'ok','numbers'=>$numbers, 'win_numbers'=>$win_numbers, 'money'=>$money, 'prize'=>$prize]);
}
這個函式出了一點問題。。
當然我這麼的菜,肯定是看題解寫出來的,上網上一找,找到了蘇老大的題解。。。。
自己一開始就專注於分析這個檔案(通讀**),於是將使用者的輸入甩到一邊去了。。。。
$numbers = $req['numbers'];//接受到數值
$win_numbers = random_win_nums();//得到乙個7位的隨機值
$same_count = 0;
for($i=0; $i<7; $i++){
if($numbers[$i] == $win_numbers[$i]){//沒有將我們發過去的值過濾,直接用於比較
$same_count++;
利用:php弱型別的比較,例如 true==[1-9]
於是我們只要傳入乙個陣列都為true的值就可以了
多傳送幾次攢夠了錢就去買flag233
Python中的descriptor中的一點疑問
在我的印象中,類中的函式是可以有兩種呼叫方式的,如下 class b def func self return 10 b b b.func b.func b 於是,在之前研究descriptor的時候,我就有了幾點困惑 我將 更換成了如下兩個版本 版本1 import time class lazy...
python中的dict Python中的dict
dict python內建了字典 dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵 值 key value 儲存,具有極快的查詢速度。d print dict get michael d michael add a element d adam 67 print d...
zset中的score Redis中的事務
watch 監控某個或幾個key的變化 multi 接下來的命令不會立馬執行,會先放入乙個事務的佇列中 exec 執行事務佇列中的命令 unwatch 可以在watch執行之後 multi命令執行之前執行,效果是解除對某個key的監控 discard 可以在multi命令執行之後exec命令執行之前...