漏洞1
一下4個漏洞觸發都在其他文件,這里只進行漏洞點的分析。
漏洞點tool\log\c.php
啟動c.php大約140行-148行
這里執行了兩個方法 show_form 與main
這里追蹤show_form
內容如下圖:
這里的extract存在變量覆蓋。也就是說, 這里的你可以控制任何參數,用輸入參數進行替代即可。這里的strip_slashes方法簡單提一句,改方法做了一下普通的過濾
最后再改文件第8行左右可以看見改函數如何執行
該函數包含再call_user_func中,作為回調函數的值進入call_user_func 被執行。
可以說, 這是一個非常好的bypass webshell
漏洞2
tool\php_cli.php
一樣的實現方法, 內容作為call_user_func的參數的回調值進入call_user_func中去。
漏洞3
tool\ldb_cli.php
一樣的內容, 同樣是引用了$show_form的問題
漏洞4
tool\mdd_sql.php
這里的圖都懶得貼了。
神他媽 懂的都懂
漏洞5 任意文件讀取
store\cat.php
文件大概400行左右
是由start()進行啟動的,
filename 變成變量$fname 並沒有過濾直接到了read_file($file_list)
而file_list與fname有關。參與運算的方法是parse_path
至此形成任意文件讀取。