DVWA靶场练习

文章目录


前言

学习完渗透入门后进行靶场联系


提示:以下是本篇文章正文内容,下面案例可供参考

一、SQL注入

完全相信用户输入,没有对用户输入进行过滤。
发现SQL注入后,

  1. union select 1,datebase()# 爆破库
  2. union select 1,table_name from information_schema.tables where table_name='数据库名#爆破行'
  3. union select 1,column_name from information_schema.tables where table_name='列名'#爆破列
  4. union select 1,concat(user,password) from users# 爆破user和password
  5. union select 1,concat_ws(char(32,58,32),usesr,password) from user# 其中32为空格58位冒号 显示为user : password
  6. union select 1, concat(@@datadir,@@basedir,@@version_compile_os)# 数据库路径,MYSQL安装路径 操作系统

二、XSS跨站脚本攻击

  1. 反射性:不储存远程<script>alert("XSS"):<script>,应对措施:简单模式匹配删除<script>,但是并不区分大小写。删除模式来禁用JavaScript,可使用html事件
  2. 持久性:留言板,储存在远程。应对措施:过滤字段,但是未过滤大小写,
  3. DOM型:javascript隐藏在URL中。应对措施:模式匹配删除字段,但可从选择块分离出,添加Onerror事件。URL的片段部分(任何在#之后)不会发送到服务器。#<script>alert("XSS")<script>

三、命令执行RCE

  1. 不对用户输入进行过滤。
  2. 过滤不够完全。

四、暴力破解

使用Burp suite 测试器,攻击类型:
狙击手:当有多个测试变量的时候,依次用字典里的数据替换第一个参数,其余变量值不便,当第一个变量测完成后依次用字典里的数据替换第二个人变量,测试好的变量和其他变量保持默认值
破城锤功能:所有变量同时放数据字典第一个值,同时放第二个值。特点:只需要指定一个字典。
草叉功能:每个变量需要指定一个字典。多个变量同时依次取对应字典的数据。特点:需要多个字典。注意:当一个变量的数据字典用完的时候就会停止测试,即使别的变量字典还有数据。
字母弹:某一个变量的某一个值,会对应测试其余变量的所有值。
特点:多个字典。

五、跨站请求伪造CSRF

Low

无需验证直接修改密码。

Medium

分析源码if( stripos( $_SERVER[ 'HTTP_REFERER' ] ,$_SERVER[ 'SERVER_NAME' ]) !== false )可知对HTTP_REFRER进行了判断,但是HTTP_REFERER可抓包修改。

High

php checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' )得到用户的token需要配合储存XSS弹出cookie。

Impossible

需要得到原密码

六、Javascript

Low

输入success提示无效的密码,用burp抓包发现token为token=d41d8cd98f00b204e9800998ecf8427e,分析前端代码发现值写在input标签中。进一步分析js发现函数generate_token()用于生成token。传入的参数ID为phrase.分析标签发现其为输入框内容。
因此生成token步骤为在输入框输入success,然后在console中调用generate_token()用于生成。

Medium

同理,他只是把JS放在一个文件里而已。

High

代码进行了混淆,增加了无关的函数,增加破解的难度。
解密地址http://deobfuscatejavascript.com/ 可看到关键函数token_part1,token_part2,part3在点击事件时自动触发无需再控制台输入。

Impossible

永不相信用户

总结

通过上述各个项目,了解了Burp使用,XSS,SQL.RCE等漏洞原理及相关的防范措施。对WEB安全有了一个大致的了解,后续继续练习靶场,学习逆向相关知识。# DVWA学习笔记

上一篇:hdu 2276 Kiki & Little Kiki 2


下一篇:在Linux下访问Windows共享目录的配置方法