代码审计——常见漏洞审计php函数总结

代码执行

执行代码函数:
eval()
assert()
preg_replace()
create_function()
array_map()
call_user_func()
call_user_func_array()
array_filter
usort
uasort()

代码审计——常见漏洞审计php函数总结_第1张图片
代码审计——常见漏洞审计php函数总结_第2张图片

命令执行

命令执行函数:
system()
exec()
shell_exec()
passthru()
pcntl_exec()
popen()
proc_open()

代码审计——常见漏洞审计php函数总结_第3张图片

文件包含

分别对应路径,文件名,后缀。根据服务端采取的不同策略,我们也可能会有不同的绕过方法。

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

代码审计——常见漏洞审计php函数总结_第4张图片

任意文件读取

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

代码审计——常见漏洞审计php函数总结_第5张图片

特殊函数

信息泄漏函数:
bool phpinfo()

软连接读取文件内容

代码审计——常见漏洞审计php函数总结_第6张图片

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()

还有一些绕过登录密码验证码以及账单支付等逻辑漏洞需根据个人经验进行审计

你可能感兴趣的:(代码审计)