实战DVWA!
2024-07-09 23:46:53 224人阅读
DVWA漏洞训练系统,来个大图^-^
1.首先试了下DVWA的命令执行漏洞command execution 这是我在Low级别上测试的,另外附上low级别代码:
<?php if( isset( $_POST[ ‘submit‘ ] ) ) { //isset()函数,若变量不为NULL或空则返回true $target = $_REQUEST[ ‘ip‘ ]; //$_REQUEST[] 获取标签值为ip的里的的内容<input id="ip" type="text"> // Determine OS and execute the ping command. if (stristr(php_uname(‘s‘), ‘Windows NT‘)) { //stristr()函数贴个例子吧,判断是WINDOWS还是Linux,php_uname() 返回了运行 PHP 的操作系统的描述,‘s‘ :操作系统名称。
/*
<?php $email = ‘USER@EXAMPLE.com‘; echo stristr($email, ‘e‘); // 输出 ER@EXAMPLE.com echo stristr($email, ‘e‘, true); // 自 PHP 5.3.0 起,输出 US ?>
*/ $cmd = shell_exec( ‘ping ‘ . $target ); //shell_exec()函数执行命令作用呗 echo ‘<pre>‘.$cmd.‘</pre>‘; } else { $cmd = shell_exec( ‘ping -c 3 ‘ . $target ); //执行linux命令 echo ‘<pre>‘.$cmd.‘</pre>‘; } } ?>
发现$target直接接收了没有过滤过得值,window 和 linux 下可以直接用&&和;来执行多条命令,所以提交127.0.0.1&&net user做测试
接下来是medium级别的代码
<?php if( isset( $_POST[ ‘submit‘] ) ) { $target = $_REQUEST[ ‘ip‘ ]; // Remove any of the charactars in the array (blacklist). $substitutions = array( //建立php数组 array(‘key‘ => ‘value‘) ‘&&‘ => ‘‘, ‘;‘ => ‘‘, ); $target = str_replace( array_keys( $substitutions ), $substitutions, $target );
/*array_keys返回数组键名,str_replace(search,replace,subject)三个参数search作为匹配,匹配subject中的字符,若匹配到用replace代替 */ // Determine OS and execute the ping command. if (stristr(php_uname(‘s‘), ‘Windows NT‘)) { //判断是不是windows $cmd = shell_exec( ‘ping ‘ . $target ); echo ‘<pre>‘.$cmd.‘</pre>‘; } else { $cmd = shell_exec( ‘ping -c 3 ‘ . $target ); echo ‘<pre>‘.$cmd.‘</pre>‘; } } ?>
medium里面吧&&和;都过滤了,但是可以尝试提交 1||net user ||的意思是若前面没有执行成功则执行后面的内容
=========================================未完待续======================================================
style blog http color width
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
×
https://www.u72.net/daima/fsnh.html