CTF從入門到提升(十六)代碼執行相關函數及例題分享
作者:星期三, 九月 18, 20190

代碼/命令執行

比如說能夠對一個php的站點,控制php代碼,那么我們就把它劃分為代碼執行,如果能執行網站所在服務器中的命令,我們這就把它劃分為命令執行,因為它執行的是系統命令。

一般來說代碼或命令執行漏洞都存在一個相關函數,通過控制部分參數傳遞到函數中實現命令執行。說到CTF題型中的這種攻擊手段,一定要知道哪些函數能夠被利用需要我們去關注的,首先會帶大家了解一些代碼注入的相關函數,例如執行php代碼的一些函數。

相關函數(代碼注入)

1eval 函數

這個函數能夠把字符串當成代碼來執行,以分號結尾可以理解為是完整語句,即使報錯加上分號之后語句也會成功執行。

2Assert

3call_user_func

注意不是所有的函數都能去調用,官方手冊上也沒有明確哪些函數可以調用哪些不能。

4call_user_func_array

5create_function

6preg_replace

這個函數比較早,5.5中它已經被棄用了,但是你一樣可以去使用它,但是在7.0之后,你就沒辦法去調用它,它已經不存在了。

7array_map

8Usort

9{php代碼}

舉栗子?

price是中間可控的,我們這里就控制它。

我們傳的是123,實際上echo里的語句是name的價格是123,分號后面是不存在的,實際傳遞值的時候,是不用去傳引號的,我們把引號去掉就能實現命令執行了。

內容來自《CTF從入門到提升

關鍵詞:

相關文章

寫一條評論

 

 

0條評論