针对PHP语言编写的WEB应用系统进行渗透测试,是学习Web渗透测试上手比较容易的方式之一,深耕PHP开发这些年,从最早的CTF题型基本都是PHP,还有实战中的一些CMS,都需要你对PHP语言的特点进行深入了解,很多人学习只知道大概,但不知道原理,从我前面写的PHP安全开发,到现在的PHP漏洞全解,都是从原理出发,学懂,学透。以后,会持续更新,各位道友可以持续关注,并留言提出宝贵意见,谢谢!
PHP 中可以使用下列 5 个函数来执行外部的应用程序或函数 system()、exec()、passthru()、shell_exec()或者(与 shell_exec 功能相同)自定义函数原型 。
string system(string command, int &return_var)
-
command 要执行的命令
-
return_var 存放执行命令的执行后的状态值
string exec (string command, array &output, int &return_var)
-
command 要执行的命令
-
output 获得执行命令输出的每一行字符串
-
return_var 存放执行命令后的状态值
void passthru (string command, int &return_var)
-
command 要执行的命令
-
return_var 存放执行命令后的状态值
string shell_exec (string command)
-
command 要执行的命令
漏洞实例
//ex1.php
$dir = $_GET["dir"];
if (isset($dir)) {
echo "<pre>";
system("ls -al ".$dir);
echo "</pre>";
}
我们提交 http://www.test.com/ex1.php?dir=| cat /etc/passwd 提交以后,命令变成了 system("ls -al | cat /etc/passwd")
原文始发于微信公众号(船山信安):原创 | PHP 漏洞全解—命令注入攻击
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论