xss挖掘思路分享_新手指南 | permeate靶场漏洞挖掘思路分享

简介

最近在逛码云时候发现permeat靶场系统,感觉界面和业务场景设计的还不错.所以过来分享一下.

同时也是分享一下我平时挖掘漏洞的一些思路吧,这篇文章里虽然只简单介绍其中三种漏洞类型,但也是想是一个抛转引玉吧,给web安全新手提供一些挖掘思路.

下载地址:

GitHub地址: https://github.com/78778443/permeate

国内地址: https://gitee.com/songboy/permeate

这篇文章里主要介绍其中的,SQL注入挖掘,xss跨站挖掘,以及csrf漏洞把

在挖掘一网站的漏洞时候,我们脑海里要知道什么漏洞在什么场景下容易出现,那些漏洞出现的比较频繁,我脑海里的web安全漏洞有三种类型吧:

1. 编码型漏洞

2. 业务逻辑漏洞

3. 运行环境漏洞

笔者之前给别人做代码审计有一个习惯,通常希望给的源码能够正常运行,还不是光从代码来分析问题.

为什么这么做呢,因为觉得如果代码不能运行其实很多漏洞是无法光从代码层面发现问题的.

而代码能运行起来,其实不仅能验证问题,也可以从系统的业务功能来找出更多问题.

比如说很多网站提供站内搜索功能,在搜索的时候通常会把用户搜索的关键词返回在页面当中,比如"你搜搜的关键词'关键词'结果如下",那在这里就很有可能存在反射型XSS漏洞.

另外很多网站都存在用户体系,而在修改个人资料的时候很有可能存在越权问题,比如修改的个人资料的时候查看是否又提交uid参数,如果有,修改uid值,看是不是把别人的资料给修改了,这些其实都需要运行之后才能发现问题所在.

笔者在windows系统中石油wampser搭建还比较简单,这里先简单介绍安装方法:

1. 用git把代码拉下来

2. 配置单独的虚拟主机目录(不要放到二级目录,貌似有问题)

2. 新建了一个数据库

3. 导入sql文件,文件位置 /doc/bbs_cate.sql

4. 修改一下/config/dbconfig.php文件中的数据库账号密码信息

通过上面的安装步骤之后,应该可以看到如下面的界面了.有一个默认板块和一个默认分区,就说明连接数据库成功了.

现在我们开始去挖掘里面的漏洞,在项目介绍中看到有SQL注入和XSS以及CSRF问题,但是没有告知存在漏洞的位置,所以我们需要先分析每个漏洞的对应场景.

先来说说SQL注入挖掘吧.

一. SQL注入挖掘

懂点SQL注入知识应该都可以想到sql注入是因为攻击者可以控制sql语句中的参数所造成的,那么我们就先找一个需要传参的地址,在刚才的首页中可以看到有一个默认板块,那么就点击默认板块好了,点击之后上面的URL地址变成了

http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5

在URL中可以看到,有三个参数,但根据经验来说,前面两个参数m和a有点像是路由,所以这两个先暂时用排除法排除,最后一个参数bk是一个数字,感觉应该是板块的ID,所以可以重点关注一下,我们先记住未测试之前的页面是什么样子

现在先用手动测试快速测试一下,怎么测试呢? 可以在bk=5后面加一个单引号,或者加一个%27,得到URL地址如下

http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5'

这个时候看一下页面的运行效果如何,发现帖子列表中帖子已经不存在了.

这个时候我们可以初步的得出结论,这个地方可能存在SQL注入问题,但是还不能肯定,要肯定这个地方是否存在注入问题,我们这样深入去验证一下,可以使用参数值 5' or '1'='1 来进行验证,得到URL地址如下

http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5' or '1'='1

访问之后,发现页面又发生了一次变化,这个时候我们就可以肯定这个地方存在了SQL注入问题,如下图

我们可以使用sqlmap来看看数据库存在哪些数据库信息,sqlmap命令如下:

sqlmap -u "http://permeate.localhost/home/index.php?m=tiezi&a=index&bk=5" --dbs

通过sqlmap的反馈结果可以看出,这个地方确实存在了注入问题.

下面我们接着找一下XSS漏洞漏洞

二. XSS跨站

造成xss的主要成因我们知道是参数会被在页面输出,所以在找XSS漏洞的时候,我们先看看站点有什么功能;

在首页的图片和帖子列表页中可以大致看出有搜索功能,和发帖,回复帖子等功能,这些地方都会把接收的参数作为内容展示出来,所以我们可以挨个去测试.

先来一个最简单的搜索页吧,在导航栏有一个搜索框,我首先在搜索框中输入test吧,得到URL地址如下

http://permeate.localhost/home/search.php?keywords=test

从URL地址可以看出搜索的关键词会通过keywords来传递,传递之后也会显示在页面内容当中,如下图

现在分析显示html元素,在关键词test的父级节点,可以看到是div,div中写入script标签是会被执行的,所以可以直接使用下面的payload

http://permeate.localhost/home/search.php?keywords=test

进行测试,通过浏览器访问此连接,可以看到已经弹出123确认框

不过xss不仅限于script标签可以被执行,也可以用img标签的onerror属性来执行,可以构造如下的payload

http://permeate.localhost/home/search.php?keywords=test

依然访问URL地址,可以看到456的确认框被弹出来了

上面的XSS都属于反射型的,存储型的项目也表明存在,这里我们先略过吧,先看看CSRF的漏洞好了.

三. CSRF

CSRF漏洞主要成因是因为服务端接收表单请求时候没有验证是用户发送的请求还是浏览器发送的请求,所以在挖掘此类表单的时候先去找表单的位置,在前面的截图当中,可以看到有一个发帖的按钮,可以进去点进去看看,点击发帖,URL地址为

http://permeate.localhost/home/fatie.php?bk=5

在这个页面中可以看到有一个发帖的表单,我们主要看一下表单有没有token令牌,如果没有的话,那就可能存在CSRF的漏洞问题,通过浏览器的审查元素截图如下

在页面中确实没有存在token信息,因此我们可以初步得出结论,这个地方存在CSRF的可能,现在需要验证一下,

在验证的时候我们需要制定CSRF有GET型和POST型,get型利用起来相对简单很多,而在这个地方表单提交虽然是通过POST,但并不排除GET提交也可以利用,所以我们先尝试用GET型来提交数据,先通过抓包浏览器的网络分析模块来看,发帖会发送哪一些数据,如下图

在图中可以看到,post会传递三个参数过去,bk和title以及content三个参数,我们先用get表单构造出一个payload出来,得到URL地址如下:

http://permeate.localhost/home/_fatie.php?bk=5&zt=0&title=111&content=222

然后去浏览器打开这个地址,看看是否能提交表单成功,访问后发现弹出了一个确认框,告诉我已经发帖成功了,如下图

去列表确认一下,发现确实已经发帖成功,如下图帖子列表

这个CSRF相对来说比较低级,很多情况下用get并不能提到post提交,因此我们再来尝试用post方法构造一个payload出来,代码如下

var f=document.getElementById("test");

f.getElementsByTagName("input")[0].value="title";

f.getElementsByTagName("input")[1].value="content";

f.submit();

在上面代码中可以看出,表单里面的值已经事先做好了定义,当受害者打开之后,变回自动提交表单.

前面提到了这个系统中存在存储型XSS,又存在CSRF漏洞,那么我们是不是可以用来做一个XSS蠕虫试验呢?

四. 蠕虫XSS

满足蠕虫XSS需要两个必要条件,存储型XSS,和CSRF漏洞,这两个这个系统都有,所以实现起来没有问题,需要的是先找一下存储型XSS

在前面发帖的位置会把参数存储起来,并展示,因此这个地方是一个比较好的试验点,我们在发帖位置先来试验一下吧. 如下图,表单中提交了xss验证代码,当成功触发的时候会被弹框123,如下图

点击发布帖子按钮,发布帖子成功,下来来到帖子列表页面,发现alert(123)已经被触发成功了,如下图

现在CSRF有了,存储型XSS也有了,那么接下来就是需要把它们结合起来使用了,但蠕虫XSS利用代码相对alert(123)来说代码会比较长,所以我们需要先把利用代码放到一个文件当中,然后再通过script引入进去,我们构造的代码如下

var strrand = +new Date();

var str = 'http://premeate.localhost/home/_fatie.php?bk=5&zt=0&title=1111&content=222';

var tag = document.createElement('img');

tag.src = str;

document.body.append(tag.src);

在上面的代码中,只要一被执行,页面将会被插入一个img标签,其中标签的src属性又会去请求表单,表单里面的内容又是一段xss代码,这样变回造成XSS蠕虫攻击者,每次请求都会是倍数增长.如下图,浏览器刷新3次之后,已经有很多帖子了.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dom4j实现为list添加父节点_Heap 堆的实现

堆(数据结构)什么是堆堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象堆的性质这种用数组实现的二叉树,假设节点的索引值为index,那么:节点的左孩子节点是 2*index1,节点的右孩…

python concurrent queue_Python的并发并行[2] - 队列[0] - queue 模块

queue模块/ queue Module1常量/ ConstantsPass2函数/ FunctionPass3类/ Class3.1 Queue类类实例化:queue queue.Queue(maxsize0)类的功能:用于生成一个先入先出队列实例传入参数: maxsizemaxsize: int类型,队列的最大值,无空间时阻塞&#xf…

acer软件保护卡清除工具clear_如何清除 APT 缓存来回收宝贵的磁盘空间 | Linux 中国...

导读:在本教程中,我将解释什么是 APT 缓存、为什么会使用它、为什么你要清理它,以及关于清理 APT 缓存你应该知道的其他事情。本文字数:2132,阅读时长大约:3分钟https://linux.cn/article-12787-1.html作者…

检测正常和不正常图_医生提醒:激素正常不等于内分泌正常,带你走出内分泌失调误区...

内分泌失调是女性常见的问题,特别是压力较大的都市女性,常常因为内分泌失调而导致月经紊乱,同时皮肤状态也变得糟糕,让她们很是心烦。一旦怀疑自己是内分泌失调,不少女性都会进行相应的激素检测,但如果检测…

linux设置挂载服务端防火墙_「rpcbind」Linux下nfs+rpcbind实现服务器之间的文件共享(mount 挂载) - seo实验室...

rpcbind1、安装nfs和rpcbind检查自己的电脑是否已经默认安装了nfs和rpcbind:rpm -aq | grep nfsnfs-utils-1.2.3-54.el6.x86_64nfs4-acl-tools-0.3.3-6.el6.x86_64nfs-utils-lib-1.1.5-9.el6.x86_64rpm -aq | grep rpcbindrpcbind-0.2.0-11.el6.x86_64这表示系统已经…

antd 判断input输入内容是否大于_Python基础语法 | 代码规范amp;判断语句amp;循环语句...

Python基础语法代码的执行顺序从上到下从左到右代码规范模块名,包名,普通数据量一般小写字母,多个单词之间用 _ 连接不要用系统定义的名称,具有特殊意义的表示符,如:doc,txt之类的每行代码不易过长单个字母…

zstd安装_PHP: 安装 - Manual

安装此 PECL 扩展未与PHP 捆绑。An example installation procedure on Ubuntu 18.04 with PHP 7.2:// Dependencies$ apt install build-essential libprotobuf-dev libboost-dev openssl protobuf-compiler liblz4-tool zstd// PHP with the desired extensions; php7.2-dev…

小米手环导出心率_这个功能有意思,小米11支持指纹检测心率,没有手环也不怕...

原标题:这个功能有意思,小米11支持指纹检测心率,没有手环也不怕昨晚,小米发布了新一代数字旗舰小米11,在处理器和屏幕等方面都做了升级,相比于这些重点,有一项新功能的介绍篇幅不是很多&#xf…

用单片机测量流体流速的_金属管转子流量计基本测量原理

金属管转子流量计的主体构件是一根金属材质的锥形测量管,测量元件是一个内置磁钢的转子(或称浮子),故而得名。金属管的锥度通常在4左右,下端截面积略小于上端;转子直径略小于金属管内径,形成一个…

css如何调整红心样式_在JavaScript应用程序中包含CSS的多种方法「渡一」

原文链接:https://css-tricks.com/the-many-ways-to-include-css-in-javascript-applications/,作者:Dominic Magnifico如有翻译不准确,请多指正。欢迎来到这个在前端开发领域极具争议性的话题!我相信读到这篇文章的大…

小新pro13 重装注意_新款小新pro 13注意什么?买前必读

导读:看到这一款本本,你的感觉是什么呢?精巧、美丽,性能强劲还是高分辨的屏幕呢?一起看一看2020款的联想(Lenovo)小新Pro13,要注意哪些事项?请听小编简单跟你唠几句~1、买联想小新pro的&#xf…

服务禁止方法_Linux禁止ping以及开启ping的方法

今天浏览一个网站,本着好奇的心态ping一下,发现不管是ping域名和IP都是不通的。这就比较郁闷了,后来百度后知道原来服务器是可以设置禁止ping的,看来是我孤陋寡闻了,接下来给大家分享一下服务器如何禁止ping。Linux默认…

java 多态判断非空_Java核心技术(四):继承

本章目录:一、类、超类和子类1.多态2.动态绑定3.阻止继承:final类和方法4.抽象类5.访问修饰符总结二、Object类:所有类的父类1.equals方法2.hashcode方法3.toString方法三、对象包装器与自动装箱四、反射1.Class类2.捕获异常3.利用反射分析类…

互相引用 spring_听说你还不知道Spring是如何解决循环依赖问题的?

作者:Vt前言Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题。其实笔者本人对这类框架源码题还是持一定的怀疑态度的。如果笔者作为面试官,可能会问一些诸如“如果注入的属性为null,你会从哪几个方向去排查”这些场景…

打印多页时两边取消留白_办公必备技巧:Word打印技巧大全

打印是每一位办公族都要掌握的一项最基础的技能。平常在用WORD写作、对文章进行排版等,最终我们都是需要将其打印到纸张上。在打印中有着众多的操作技巧,如果你还不会,那今天易老师就来给你科普一下。本文目录第一部分:基础打印操…

中raise抛出异常_Python 异常处理知识点汇总,五分钟就能学会 !

异常处理在任何一门编程语言里都是值得关注的一个话题,良好的异常处理可以让你的程序更加健壮,清晰的错误信息更能帮助你快速修复问题。在Python中,和不分高级语言一样,使用了try/except/finally语句块来处理异常,如果…

python中print语法错误_Python 3.x中使用print函数出现语法错误(SyntaxError: invalid syntax)的原因...

在安装了最新版本的Python 3.x版本之后,去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误:SyntaxError: invalid syntax这是因为Python 2.x升级到Python 3.x&…

easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能

Easypoi简化了开发中对文档的导入导出实现,并不像poi那样都要写大段工具类来搞定文档的读写。第一步引入Easypoi依赖cn.afterturneasypoi-spring-boot-starter4.2.0Easypoi的注解使用说明(存留查看即可)第二步定义对应表格头数据对象实体类(注解的使用可以查阅上面的…

mysql 严格模式_MySQL 开启/关闭 严格模式(Strict Mode)

[广告:最高 2000 红包]阿里云服务器、主机等产品通用,可叠加官网常规优惠使用 | 限时领取查看 Mysql 是否开启严格模式:打开 MySQL 配置文件 my.cnf(windows为my.ini)。搜索 sql-mode 如果搜索不到就代表 非严格模式 。搜索到了就代表开启了严…

mysql 导入日期 0000_解决Excel导入MySQL日期为0000-00-00

最近在为客户做一个库存升级改造的项目,之前客户的数据管理全部是在Excel中操作,估计以前也是没有意识到数据量变大以后,工作会变得如此困难,基本上处于一个无法操作的程度了。于是我们将旧版本的Excel表格格式化以后,…