1、命令执行漏洞
(1)介绍
- 概念:当应用需要调用一些外部程序去处理内容的情况下,就会用到一些执行系统命令的函数。如PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时,将可注入恶意系统命令到正常命令中,造成命令执行攻击。
- 并且在操作系统中,“&、|、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令
A&&B,表示A命令语句执行成功,然后执行B命令语句
A&B,表示简单的拼接,A命令语句和B命令语句没有制约关系
A|B,表示A命令语句的输出,作为B命令语句的输入执行
A||B,表示A命令语句执行失败,然后才执行B命令语句
A;B,表示先执行A,再执行B
(2)题目
1)由于是PING,于是尝试127.0.0.1
注:
可以正常执行
2)尝试拼接命令:127.0.0.1&&ls
可以正常执行
3)打开所有txt文件:127.0.0.1 && find / -name "*.txt"
4) 打开flag:127.0.0.1&&cat /home/flag.txt
得到flag
2、simple_php
(1) PHP介绍
(2)基本的PHP语法
(3)PHP $_GET变量
(4)PHP $_POST变量
题目
由代码知:a==0而且a不能为0,b不能是数字而且要大于1234
故构造a=0a(进行==
操作时会先把两者转为同一数据类型,字符串强制转化的结果是0)
%00是空格的意思,具有截断作用,且也让其不是数字
转:本题更详细分析