python3 php审计敏感函数

# coding=utf-8
import os
import csv
# 1、首先遍历所有的目录,将其中的php的文件路径进行保存到数组中
# 2、对数组中的每个php文件进行读取,扫描敏感函数的路径并且进行打印
# 3、写入到csv文件中进行保存
# 4、统计每个函数出现的个数
# D:\phpstudy_pro\WWW\huka
php_files = list()
func_num = dict()
funcs = [' eval(',
' create_function(',
' system(',
'ob_start(',
' exec(',
' array_map(',
' array_filter(',
'extract(',
'unserialize(',
' simplexml_load_string(',
' file_put_contents(',
' usort(',
' uasort(',
'foreach($_POST',
'foreach($_GET',
'foreach($_REQUEST',
'foreach($_COOKIE',
'parse_str(',
''
]
for i in funcs:
func_num[i.strip('(').strip(' ')] = 0
for root, dirs, files in os.walk("D:\phpstudy_pro\WWW\huka", topdown=False):
for name in files:
file = str(os.path.join(root, name))
if file.endswith('.php'):
php_files.append(file)
with open('C:\\Users\\dell\\Desktop\\自己练手脚本\\代码审计敏感函数\\dov.csv', 'w', encoding='utf-8', newline='') as q:
csv_writer = csv.writer(q)
csv_writer.writerow(['漏洞代码行', '敏感函数', '漏洞文件', '漏洞当前内容'])
for file in php_files:
with open(file, 'r', encoding='UTF-8', errors='ignore') as f:
data = f.readlines()
for aline in data:
aline = aline.encode('utf-8').decode('utf-8')
code_line = int((data.index(aline) + 1)) # 代码行数
for func in funcs:
clear_func = func.strip('(').strip(' ')
if func in aline:
func_num[clear_func] += 1
print("第 %d 行发现敏感函数 %s ,文件位置位于 %s,当前数据内容为 %s" % (code_line, func.strip('(').strip(' '), file, aline))
csv_writer.writerow([code_line, func, file, aline])
for func in funcs:
clear_func = func.strip('(').strip(' ')
csv_writer.writerow([clear_func, func_num[clear_func]])

posted @   zpchcbd  阅读(169)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示