前言
- 掌控安全里面的靶场漏洞原理到利用,学习一下!
验证码绕过
打开环境,cms UsualToolCMS
直接去站长源码下载过来
可以发现管理员路径/cmsadmin/a_admin.php
访问一下,因为说是验证码绕过,估计也是弱密码,直接抓包跑一下top100密码试试
直接跑seclist圈的常用密码
由于单单靠长度来判别是否成功有点困难,所以匹配grep-Extract提取一下,如果出现不同的字符就说明找到了。
找到密码为root
去登陆admin、root成功进入后台
审计一下代码,先自动审计看看有什么危险函数,结果看到后台a_tampletex.php存在一个文件任意写入的函数,跟进看看
主要代码
1 | $x=UsualToolCMS::sqlcheck($_GET["x"]); |
分析一下
1、第一个参数filenames由post传参filename控制
2、第二参数contents由post传参content限制
3、得满足get传参x=m
4、由于filenames的目录会回退一个../所以最后shell会生成在网站页面
准备去写shell http://yzmrg988.zs.aqlab.cn/cmsadmin/a_templetex.php抓包
接着访问http://yzmrg988.zs.aqlab.cn/shell.php
蚁剑连接成功拿shell
越权漏洞
核心:传参,修改传参中有可能代表你身份的信息
水平越权:攻击者可以访问相同权限的不同用户的资源
垂直越权:攻击者可以访问高权限用户的资源
水平越权
练习一下,先注册两个号test1和test2
接着查看一下cookie对比一下,发现有些可疑的传参可疑试试
登陆test1可疑知道test1的UserID为29,将test2的UserID改为29试试看,发现可以通过test2改UserID来查看test1的资料,并且还可以修改
垂直越权
根据上面的我们还得到有个admin和shenfen两个传参,修改一下试试
将shenfen=3,发现变成维修人员了
将shenfen=1,变成管理人员了,明显垂直越权
但是访问管理员后台,会被拦截
在仔细看看传参,发现有个admin=0,将其改为admin=1
结果成功进入后台了
接着测测有没有未授权访问, 直接复制管理员登陆后的地址,直接访问
发现弹了个前端的弹框,关掉javascript的功能看看能不能绕过
发现可以访问,但是无法进行操作只能获取信息
了解一下
SSRF
利用方式为使用dict协议操作Redis、file协议读文件、gopher协议反弹Shell等。
ssrf漏洞的原理
SSRF(服务器端请求伪造),是攻击者构造请求再由服务端发起的漏洞。漏洞点一般在控制服务端发起请求的功能点,涉及的危险函数为file_get_contents、fsockopen、curl_exec。利用SSRF可以对内网发起攻击、对本机未对外开放服务发起攻击、做为攻击跳板。
ssrf有什么作用
一般用于探测内网端口及信息,查看文件,甚至可以getshell攻击内外网的web应用。
ssrf一般存在于哪些地方:
能够对外发起网络请求的地方,可能存在ssrf从远程服务器请求资源处。
如何判断是否有ssrf:
从远程服务器请求资源,验证请求是不是由服务器发出
ssrf支持哪些协议:
Dict:// file:// sftp:// ldap:// gopher:// ftp:// http:// 等.
SSRF如何绕过
统一错误信息;限制请求的端口;过滤返回的信息;黑名单内网ip;禁用其他协议,允许http,https。
ssrf里的dict协议的作用
查看端口,版本信息这些;向服务器端口请求curl命令
ssrf里的file协议的作用
可以在文件系统中读取文件,有的时候会被禁用
SSRF里的gopher协议的作用
可以用这个协议发送各种格式的请求包
SSRF的危害:
主要还是攻击内网或者本机应用,例如内网存在弱密码或者是某些问题cms就可以通杀了,然后本机应用,有些易受攻击的应用并不会开放端口,但是默认本机运行开放,例如redis,还可以读取本机文件,有些敏感文件,例如数据库配置文件
SSRF漏洞的核心:
第一点:进入了内网,绕过了很多防火墙机制,因为防御大部分对外不对内
第二点:可以去访问存在漏洞机器上面的内部开放端口。可以触发漏洞(redis之类的)
第三点:可以通过file协议读取敏感信息
SSRF挖掘重点:
其实不一定非要去找传参名之类的或者功能点,在我看来,如果哪个传参带了协议名或者是带了文件后缀,都可能存在SSRF,一般而言有协议名传参的基本都有,如果是带了文件后缀的,很有可能存在SSRF漏洞或者任意文件下载或者任意文件读取。
通过可以访问本机http地址,存在SSRF漏洞
dict协议扫一波端口,线程50,端口1-65535
发现了6379端口,该端口的服务是redis,可以利用gopher协议操作redis写入一句话木马,可以选反弹shell或是写入shell,写入shell一般需要知道绝对路径,但这里好像是个例外,可以直接拿gopherus.py工具直接拿shell
接着将我们得到的payload直接访问,就可以生成shell.php在当前目录中
当上面的刷新图标在转圈的时候,说明shell生成ok了,直接访问
蚁剑连接成功,是台linux机子
支付漏洞
理解支付漏洞首先要了解网站支付逻辑,商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知。
常见的支付漏洞有这么几种:修改支付价格、修改支付状态、修改购买数量、修改附属值、修改支付接口、多重替换支付、重复支付、最小额支付、值为最大值支付问题、越权支付、无限制试用、修改优惠价
实操:
1、注册一个账号,发现购买点卡的时候抓包,修改为负值会自动增加金额
金额就增加了
我的个人博客
孤桜懶契:http://gylq.gitee.io