xctf中的Lottery( git原始碼洩露)

2021-09-22 20:14:56 字數 885 閱讀 8846

這道題先用敏感檔案洩露工具掃到了.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命令執行之前...