DVWA各个关卡源码分析

本文深入分析DVWA靶场中各安全关卡的源码,包括SQL注入、XSS漏洞及其防御措施,如SQL注入的low、medium、high等级的防御策略,XSS的反射型、存储型、DOM型攻击及防御,以及CSRF、命令注入、文件包含和文件上传漏洞等,揭示了如何通过源码理解漏洞原理和防御方法。
摘要由CSDN通过智能技术生成

    前一阵子做完DVWA靶场以后只是做了通关练习,现在将DVWA各个关卡的源码分析一下,有利于更好的理解漏洞的原理与攻防。我主要是分析一下源码,看看它为什么会有漏洞以及不同等级是如何防御的
    SQL注入:
      原理:SQL注入是指web应用程序对用户输入数据的合法行没有判断,前端传入后端的参数是可控的,并且参数带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。就是说前端的输入影响了后端的数据。
      主要满足两个条件:1.参数用户可控。2.参数代入数据库查询

在low等级中,request获得id后没有对用户输入的id做任何过滤就带入了数据库查询。

在medium等级中,在获取到id后利用mysqli_real_escape_string函数转义在SQL语句中使用的字符串中的特殊字符

在high等级中,并没有对用户输入的id做任何过滤但是在后面限制了limit 1,限制了查询的条数。可以利用bp改包

SQL盲注:

low等级仍然是没有做任何限制,get获得用户数据后直接带入数据库中

mideum等级中,利用post传参限制用户输入并且利用mysqli_real_escape_string函数将特殊字符进行转义

在high等级中,1.将数据提交界面和显示界面分离在两个不同的页面,可阻挡自动化工具的常规方式的扫描。2.在sql语句中限制limit 1 3.在提交界面利用set-cookie对输入的ID之进行传递到显示页面的cookie字段中进行保存

 

 

XSS(本质是HTML注入)

  原理简介:

跨站脚本攻击—XSS(Cross Site Script),是指攻击者通过在Web页面中写入恶意脚本,造成用户在浏览页面时,控制用户浏览器进行操作的攻击方式。假设,在一个服务端上,有一处功能使用了这段代码,他的功能是将用户输入的内容输出到页面上,很常见的一个功能。但是假如,这里输入的内容是一段经过构造的j

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值