一、命令注入(敏感函数定向法)
1.概念:
在PHP脚本中,我们可以对输入进行注入攻击。什么是注入?注入即是通过利用无验证码变量构造特殊语句对服务器进行渗透。
注入的种类有很多,而不仅仅只是SQL Injection
2.分类
- 命令注入(Commend Injection)
- Eval 注入(Eval Injection)
- 客户端脚本攻击(Script Insertion)
- 跨网站脚本攻击(Cross Site Scripting XSS)
- SQL 注入攻击(SQL injection)
- 序列化注入&对象注入
3.命令注入
PHP中可以使用下列5个函数来执行外部的·应用程序或函数(当然、能实现这样的功能的手段不止是这五个函数)- system()
- exec()
- passthru()
- shell_exec()
- ‘’(与shell_exec功能相同)
4.、入口文件(一般包含一些配置信息)
5.找到目录
错误报告的显示,在审计的时候我们把第三句修改为显示所有错误
error_reporting(E_ALL);
接下来进行判断, 找公共函数lib,定义变量(12-15),连接数据库,开启Session
6.继续看lib
第三行定义时区,第五行判断是否开启gpc,如没有开启,就执行Set函数,对输入进行分析、过滤
- SQL数据的分析
尝试绕过
先反转义
看是否是图片格式,可以任意上传,伪造文件名
9.
是否存在包含漏洞
inc包含about - 全局搜索关键字
Ctrl+shift+f
自动跳转到Shell_exec($cmd)这一行,分析,返回到res,看前面是Windows就返回 ,得出没有过滤
二、审计思路展现
1.利用Web漏洞平台
2.进入到后台
开启错误报告,有警告信息和提示信息
登录管理员的用户和密码审计
3.看到Ping点击进入
4.测试命令
5.先测试能否正常执行
发现是乱码(字符集的问题)
6.接着测试注入127.0.0.1
返回的信息,存在注入.,发现漏洞
7.修复漏洞,过滤执行操作
验证是否过滤
三、审计思路展现