首页 > 作文

代码审计

更新时间:2023-04-08 21:01:09 阅读: 评论:0

作者:小刚
一位苦于信息安宋濂苦学全的萌新小白帽,记得关注给个赞,谢谢
本实验仅用于信息防御教学,切勿用于其它用途

php命令执行

前言返回执行结果无返回执行结果命令执行小技巧1.在命令执行过程中,我们会遇到空格被删除或者替换的情况2.在命令执行过程中,我们会进行多条命令执行防范措施

前言

近期在学习php的代码审计,推一下这本书啊代码审计 企业级Web代码安全架构_尹毅著。
前篇文章介绍过代码执行了,现在写写命令执行。
命令执行就是执行命令,执行win和Linux的系统命令
php中有好几个可以执行系统命令的函数,我大体分了两类(有返回结果和无返回结果)

返回执行结果女生学医哪个专业好

直接传入命令并函数返回执行结果

system($_GET['cmd']);//直接回显结果打印输出
echo exec($_GET平凉职业技术学院['cmd']);
passthru($_GET['cmd']);
echo shell_exec($_GET['cmd']);
echo `$_GET['cmd']`;//反引号也执行命令,原理是调用shell_exec()

无返回执行结果

不返回执行结果,返回文件指针,但是命令执行了

popen($_GET['cmd'],'w');//r,w代表读写popen('whoami >> D:/2.txt','r');//将信息写入文件
proc_open($_GET['cmd']);

命令执行小技巧

1.在命令执行过程中,我们会遇到空格被删除或者替换的情况

在Win中:用=代替空格

$cmd="type=../1.txt";system($cmd);

linux中:用<代替空格

$cmd="cat<../2.txt";system($cmd);

2.在命令执行过程中,我们会进行多条命令执行

在Win中:
连续运算符 &,前面执行正常或者错误,后面都能执行。
&& 前面执行错误,后面就不能执行命令。

$cmd="ipconfig&whoami";system($cmd);

在Linux中:
分号; 是连续运算符,连接执行的语句

$cmd="ifconfig;whoami;";system($cmd);

防范措施

php有自带的命令防注入函数escapeshellcmd()和escapshellarg()
escapshellcmd()过滤整条命令
escapshellarg()是保证传入命令执行函数里的参数以字符串参数形式存在
注意escapeshellcmd() 和 escapeshellarg 一起使用,会造成特殊字符逃逸。

本文地址摄影测量与遥感:https://blo冰心集g.csdn.net/weixin_43221560/article/details/107614670

本文发布于:2023-04-08 21:01:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/91121abed9a8388fc554dabb38b9ce15.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:代码审计.doc

本文 PDF 下载地址:代码审计.pdf

标签:命令   空格   过程中   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图