ZVulDrill靶场的漏洞验证及修复

关于这个靶场之前做过几次,但是并没有完整性的做完,现在重新学习一下该靶场及其他靶场。

(修复方案,明天白盒一下源码,再继续完成)

1.SQL注入获取数据库信息

见搜索,多处

原因:无任何过滤,用户可控参数

修复:1.过滤危险函数、特殊符号

2.安装网站安全软件

多处1:注册

多处2:更新资料

2.SQL注入绕过管理后台登陆

闭合

原因:用户可控参数,无过滤

修复:增强waf,去除无用函数

<?php

function waf($bug){

$arr = '/select|insert|update|delete|and|or|eval|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|sub|hex/i';

$bug = preg_replace($arr,"1",$bug);

return $bug;

}

?>

3.反射型XSS

搜索会显示

原因:未做任何处理,导致用户可控,执行js语句

修复:配合httponly再后端使用 htmlentities()或htmlspecialchars() 进行实体转移

【这里参数ENT_QUOTES作用:若是在script、input标签当中,即可突破 payload:

‘ oninput=alert`1` //      当要在input中输入内容时触发事件

‘ oninput=alert`1` ‘       同上

‘ onchange=alert`1` //  发生改变的时候触发该事件

‘ onchange=alert`1` ‘   同上 ,所以ENT_QUOTES转移引号

二次编码

4.存储型XSS

环境暂时出问题,直接看源码吧 修好了

原因:同上

修复:同上

5.CSRF

密码修改处,没有进行原密码校验,burp构造csrf包(校验token)

原因:未对请求验证

修复:增加token验证

6.文件上传

用户后台有上传头像功能且没有做限制

修复:看之前文章,增加黑白名单,检测文件内容

7.暴力破解

没有验证码,明文传输

修复:原文链接

8.目录遍历

修复:本地环境为apache2 原文链接

9.权限跨越

没有做校验,存在水平越权

CSRF与水平越权的区别(蒙了一小会)

原因:未做任何校验

修复:方法有很多种,这里只使用最简单的验证id

10.文件包含

用户后台文件上传.png 找包含界面执行代码

原因:未对参数进行过滤,导致用户可控

修复:修复方法有很多种,如include使用绝对路径,白名单过滤。这里只做最简单方法。

远程文件包含及过滤:原文链接

11.组合拳 XSS+CSRF(修改后源码)

….

如有缺点,还请指出,共勉

留下评论