DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
DWVADVWA共有十个模块,分别是:
Brute Force(暴力(破解))
Command Injection(命令行注入)
CSRF(跨站请求伪造)
File Inclusion(文件包含)
File Upload(文件上传)
Insecure CAPTCHA (不安全的验证码)
SQL Injection(SQL注入)
SQL Injection(Blind)(SQL盲注)
XSS(Reflected)(反射型跨站脚本)
XSS(Stored)(存储型跨站脚本)
需要注意的是,DVWA 1.9的代码分为四种安全级别:Low,Medium,High,Impossible。我们可以通过比较四种级别的代码,接触到一些PHP代码审计的内容。
搭建条件:phpstudy 下载好的DWVA压缩包(下载网址http://www.dvwa.co.uk/)
phpStudy是集成了Apache和MySql的集成环境,下载好安装phpStudy,(在官网搜索下载就可以)
安装好后在浏览器运行127.0.0.1 出现hello word就是安装好了
下载DWVA压缩包
把DWVA压缩包解压到phpStudy的WWW目录之下
配置一下相关文件 首先最好先配置一下phpStudy的数据库密码(默认数据库密码是“root” ,如果忘记数据库密码可以在PHPstudy里重置一下)
修改后将DVWA里的文件confing下的config.inc.php.dist修改为config.inc.php,找到其中的把原来的db_password后边的值改为刚设置的数据库密码(如果没有设置过数据库密码 默认密码是“root”)
修改成功后访问127.0.0.1/DVWA(这里是你DWVA解压后那个文件夹的名字)
如图是安装好了
然后点击如图绿色
再点击最下边的更新数据库
出现
然后若没有问题便会自动跳转至登陆界面 账号/密码:admin/password(是默认的)
这样环境就搭建好了
然后今天讲的是XSS与CSRF:
XSS
XSS分为三类
1.反射型XSS,也叫做“非持久型XSS”,只是简单的把用户输入的数据“反射”给浏览器;
2. 存储型XSS,也叫做“持久型XSS”,会把用户输入的数据“存储在”服务器端。常见的场景是,黑客写下一篇含有恶意JavaScript代码的博客文章,文章发表后,所有访问该博客文章的用户,都会在他们的浏览器中执行这段恶意的JavaScript代码;
3.DOM Based XSS,从效果来说也是反射型XSS,单独划分出了是因为DOM Based XSS的形成原因比较特殊,通过修改页面的DOM节点形成的XSS
XSS反射类:
举个例子:
把php里根站点里的代码改为后端代码
<?php
$input = $_GET['param'];
echo $input;
?>
意思就是接受参数param,并将它的值输出到页面 比如
但是如果提交一段JavaScript代码
<script>alert('hello world');</script>
如图出现了hello word的弹窗
<script>alert(1)</script>这段代码在当前页面执行了
如果用户的输入提交后触发了弹窗,那么就说明存在XSS
就是XSS的第一种类型,反射型XSS
DOM Based XSS
例题:运行如下代码
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function test(){
//getElementById():查找并定位id元素
//定义一个变量str,获取id为text的值
var str = document.getElementById("text").value;
//将超链接写入id为t的标签中
document.getElementById("t").innerHTML = "<a href='" + str + "' >testLink</a>";
}
</script>
</head>
<body>
<div id="t"></div>
<input type="text" id="text">
<input type="submit" value="write" onclick="test()"> <!– 当点击按钮时,会触发JavaScript的test函数 -->
</body>
</html>
运行 如图
当输入内容点击“write”按钮后,会在当前页面插入一个超链接,其地址为文本框内容
然后编辑函数'οnclick=alert("hello")//
会点击超链接出现hello弹窗
然后页面代码就变成了:<a href=‘ ‘ οnclick=alert("hello")//’ >testLink</a>
但是XSS并不等同于弹窗,上述例子只是为了检测是否存在XSS 认知XSS
XSS的常见危害:
CSRF没听懂 大致就是欺骗别人的URL 伪装URL进行欺骗啥的