Web安全攻防的学习——10—(存储型XSS测试、环境搭建、定向挖掘XSS漏洞、CSRF原理介绍、文件上传绕过验证常用方式)

   日期:2020-05-05     浏览:175    评论:0    
核心提示:1、存储型XSS测试环境搭建1.下载ROCBOSS:https://www.rocboss.com/php

1、存储型XSS测试

环境搭建
1.下载ROCBOSS:https://www.rocboss.com/
2.按照文档进行安装

将解压后文件放入phpstudy中的路径中:

打开之前使用的Phpstudy软件,开启Apache和Mysql的服务。

此时网页还不显示任何信息,需要进入安装过程
1、修改pconline的配置文件


2、打开Webyog SQLyog这个软件,新建命名为:rocboss_2_1的数据库,导入install.sql这个数据库文件。


执行完成之后,数据库rocboss_2_1中显示导入的数据

此时数据库配置完成,再次刷新网页,查看效果:

登录(默认管理员账号 admin 123456),可以修改管理员密码。 此时所需要的设置都已经完成,可以开始定向挖掘的学习了。

2、定向挖掘XSS漏洞

XSS漏洞可以存在于个人资料出,文章发表处或者留言评论处

黑名单审计
私信位置没有被实体化,可以进行XSS,但是被黑名单过滤

查看system\util\Filter.php文件:
没有过滤details和ontaggle


因为检查出没有过滤details和ontaggle这两个事件,我们可以使用这部分内容来攻击。

绕过过滤,触发XSS

details open οntοggle=eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3aalert('xss')")><"

上面这部分代码输入在私信窗口可以实现css攻击。

另一种方法:
在Kali虚拟机中用XSS工具进行测试URL的攻击点

3、CSRF原理介绍

CSRF漏洞定义
CSRF(cross-site request forery,跨站请求伪造),也被称为one click attack或者session riding,通过缩写为CSRF或者XSRF。

而XSS又叫CSS(Cross-SiteScripting跨站脚本攻击)为了不和css层叠样式表混淆,所以改成了XSS。XSS是将恶意的代码插入到html页面中,当用户浏览页面时,插入的html代码会被执行,从而达到最终目的。

XSS与CSRF区别

  • 1.XSS利用站点内的信任用户,盗取cookie
  • 2.CSRF通过伪装成受信任用户请求信任的网站

CSRF漏洞原理
利用目标用户的合法身份,以目标用户的名字执行某些非法操作。

正常用户转账
http://www.xxx.com/pay.php?user=xx&money=100
恶意用户转账
http://www.xxx.com/pay.php?user=恶意用户&money=1000

CSRF漏洞利用
在修改密码的时候,抓包抓到修改密码的请求

http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change

利用隐藏图片设计一个简易的修改密码的异常链接

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>中奖了</h1>
    <!-- 定义为一个图片格式,包含有修改密码的请求 -->
    <img src="http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change" alt="">
</body>
</html>


这也是form表单添加token信息的作用,用于验证异常链接的安全性

GET型CSRF代码分析

http://127.0.0.1/csrf/csrf_get.php?username=admin&password=admin

CSRF防御措施
CSRF漏洞实质:服务器无法准确判断当前请求是否是合法用户的自定义操作。

  • 验证码防御,依赖验证码,可以防护异常链接;
  • referer check防御

Referer的检查,正常Referer: https://www.baidu.com/index.php?tn=monline_3_dg
异常 Referer案例如下:

4、文件上传

靶场环境
GitHub地址: https://github.com/c0ny1/upload-labs

解压包放在如下目录下:

在该upload文件夹下需要创建一个名为upload的文件夹,用于上传文件的存储位置

完成之后访问:127.0.0.1/upload/

文件上传-绕过JS验证

1.JS验证代码分析,在page-1中的index.php

第一种方法:
浏览器剔除响应JS
浏览器审计工具剔除JS:利用浏览器的审查工具剔除JS之后,保存为新文件然后进行文件上传

第二种绕过JS验证提交方法:
修改该网页的源码,将提交文件的响应提交至http://127.0.0.1/upload/Pass-01/index.php页面
即图中的修改代码:action=‘http://127.0.0.1/upload/Pass-01/index.php’; 保存退出
然后用浏览器 打开该源码文件进行提交。

文件上传-绕过MIME-Type验证

MIME-Type介绍
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件 用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程 序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

验证MIME-Type代码分析
Pass-2中index.php

burpsuite绕过MIME-Type验证 :利用Burpsuite工具截断HTTP请求,在Repeater重放修改MIME-Type类型绕过验证。image/jpeg或者image/png

文件上传-绕过黑名单验证

基于文件后缀名验证介绍

对于文件上传模块来说,尽量避免上传可执行的脚本文件。为了防止上传脚本需要设置对应的验证 方式。最简单的就是设置文件后缀名验证。

基于文件后缀名验证方式的分类
1.基于白名单验证:只针对白名单中有的后缀名,文件才能上传成功。
2.基于黑名单验证:只针对黑名单中没有的后缀名,文件才能上传成功

基于黑名单验证代码分析
对于黑名单中的后缀名筛选。绕过黑名单可以通过寻找“漏网之鱼” ,寻找某些可以被作为脚本执行 同时也不在黑名单中。

Pass-3中index.php

Burpsuite绕过黑名单验证
利用Burpsuite工具截断HTTP请求,利用Intruder模块进行枚举后缀名,寻找黑名单中没有过滤的后 缀名。

绕过黑名单验证(大小写验证)

大小写绕过原理

  • Windows系统下,对于文件名中的大小写不敏感。例如:test.php和TeSt.PHP是一样的。
  • Linux系统下,对于文件名中的大小写敏感。例如:test.php和 TesT.php就是不一样的。

基于黑名单验证的代码分析
只存在于Windows当中,不存在于Linux系统:因为Windows系统中大小写不敏感

在Pass-5中的index.php
查看网页源码

修改上传文件的后缀大小写然后进行上传,可以通过大小写绕过黑名单。

WeBaCoo上传Webshell

  • 1.WeBaCoo生成Webshell: webacoo -g -o a.php
  • 2.上传Webshell
  • 3.连接Webshell:webacoo -t -u Webshell地址

利用webacoo创建一个木马文件

绕过黑名单验证(空格验证)

空格绕过原理
Windows系统下,对于文件名中空格会被作为空处理,程序中的检测代码却不能自动删除空格。从而绕过黑名单。
针对这样的情况需要使用Burpsuite截断HTTP请求之后,修改对应的文件名添加空格。

Burpsuite 绕过黑名单验证
利用Burpsuite工具截断HTTP请求,对上传文件名后加空格。

绕过黑名单验证(.号绕过)

.号绕过原理
Windows系统下,文件后缀名最后一个点会被自动去除

Burpsuite 绕过黑名单验证
利用Burpsuite工具截断HTTP请求,上传文件加 . 绕过上传。

生成并上传Webshe
使用weevely生成Webshell并上传

  • 1.生成:weevely generate 密码 路径 文件名
  • 2.上传至网页
  • 3.连接:weevely shell文件地址 密码

绕过黑名单验证(路径拼接绕过)

路径拼接绕过原理
在没有对上传的文件进行重命名的情况下,用户可以自定义文件名并在服务器中上传新建,就会造 成对应的绕过黑名单。

例如: 用户新建 1.php.空格

修改文件名 绕过黑名单验证
在kali Linux下修改文件名,上传1.php. .空格

绕过黑名单验证(双写绕过)

双写绕过原理
代码编写过程中,只对黑名单中的内容进行空替换,因为只替换一次所以造成双写绕过。

例如: 1.phphpp

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服