代碼審計——常見漏洞審計php函數總結

代碼執行

執行代碼函數:
eval()
assert()
preg_replace()
create_function()
array_map()
call_user_func()
call_user_func_array()
array_filter
usort
uasort()

在這裏插入圖片描述
在這裏插入圖片描述

命令執行

命令執行函數:
system()
exec()
shell_exec()
passthru()
pcntl_exec()
popen()
proc_open()

在這裏插入圖片描述

文件包含

分別對應路徑,文件名,後綴。根據服務端採取的不同策略,我們也可能會有不同的繞過方法。

文件包含函數:
require
include
require_ once
include once

在這裏插入圖片描述

任意文件讀取

文件讀取函數:
copy
file_get_contents()
highlight_file()
fopen()
read file()
fread()
fgetss()
fgets()
parse_ini_file()
show_source()
file()

在這裏插入圖片描述

特殊函數

信息泄漏函數:
bool phpinfo()

軟連接讀取文件內容

在這裏插入圖片描述

XSS

存儲型xss
將數據插入到數據庫中
重點審計 update insert 等sql語句
反射型xss
將數據輸出到頁面中
重點審計 echo print_r 等輸出語句

越權

水平越權:
就是相同級別(權限)的用戶或者同一角色不同的用戶之間,可以越權訪問、修改或者刪除的非法操作。如果出現次漏洞,那麼將可能會造成大批量數據泄露,嚴重的甚至會造成用戶信息被惡意篡改。
垂直越權:
垂直越權是不同級別之間或不同角色之間的越權;垂直越權又別分爲向上越權與向下越權。比如,某些網站,像發佈文章、刪除文章等操作屬於管理員該做的事情。假設一個匿名用戶也可以做相同的事情,這就叫做向上越權;向下越權是一個高級用戶可以訪問低級用戶信息。

POST或GET請求中有可控參數

XXE

PHP SimpleXML 函數:
__construct()
addAttribute()
addChild()
asXML()
attributes()
children()
getDocNamespaces()
getName()
getNamespaces()
registerXPathNamespace()
simplexml_import_dom()
simplexml_load_file()
simplexml_load_string()
xpath()

sql注入

搜索:
select from
mysql_connect
mysql_query
update
delete
insert
urldecode
rawurldecode

反序列化

漏洞原理:unserialize函數的變量可控,php文件中存在可利用的類,類中有魔術方法。

序列化函數:
serialize()
反序列化函數:
unserialize()
魔術函數
__construc()
__destruct()
__call()
__callStatic()
__get()
__set()
__isset()
__unset()
__sleep()
__wakeup()
__toString()
__invoke()
__set_state()
__clone()
__debuginfo()

還有一些繞過登錄密碼驗證碼以及賬單支付等邏輯漏洞需根據個人經驗進行審計

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章