pikachu靶场通关过程

目录

CSRF

over permission(越权)

敏感信息泄露


CSRF

CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受用户信任的请求来利用受信任的网站

简单的说CSRF就是伪造一个链接,欺骗目标点击它,目标点击后,攻击就完成了。

1.CSRF(get)

如图,kobe登入自己账号想修改住址信息

kobe修改个人信息的时候,用bp抓包

复制GET后面的字符到记事本,加上协议和IP

小黑通过某种方式,将修改后的网址发给了小白,小白点击了之后,他的信息就被修改了

2.CSRF(port)

lucy登录,想要修改自己信息

修改成功

用bp抓包后,CSRF PoC生成

修改参数,我将住址改成了beijing

用浏览器测试复制网址打开,建一个恶意网站(我是火狐开代理才建成的)

等lucy点击之后,她的信息就被修改了

3.CSRF token

每次发送请求,都增加一个随机码token,后台每次都对这个随机码验证。

lucy登录之后修改自己的信息结果如下

token在什么时候生成呢,F12

可以看到,每当修改个人信息的时候,文件edit.php就会生效,生成一个随机的token。

当你点击submin的时候,生成的token就会被送往后端检验,只有token正确才能通过

因为token是随机和唯一性,一般的CSRF方法难以攻击

防范CSRF措施

RCE

RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。

远程系统命令执行
一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口
比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。

而,如果,设计者在完成该功能时,没有做严格的安全控制,则可能会导致攻击者通过该接口提交“意想不到”的命令,从而让后台进行执行,从而控制整个后台服务器


exec “ping”

ping一下本地机127.0.0.1

我们可以再输入拼接指令:127.0.0.1&ipconfig,结果会相当于在命令终端分别输入两个指令的合成

原因:源代码中没有做安全过滤。

应该有判断输入的指令是不是IP地址,不是就过滤掉的代码。

补充:在Windows和Linux中有四种命令连接符,

  • windows系统:| 、||、&&、&
  • linux系统:| 、||、&&、;

|(在远程命令执行中,不管a的执行结果是否正确,b都可以执行)

&(比如 a & b,不管a是否执行成功,b命令都会执行)//windows特有

||(逻辑或): a || b,如果命令a执行成功,则命令b不会被执行;只有命令a执行失败的情况下,才会执行命令b

&&(逻辑与):a && b,如果命令a执行失败,则命令b不会被执行;只有命令a执行成功的情况下,才会执行命令b

;(比如 a ; b,不管a是否执行成功,b命令都会执行)

exec “evel”

远程代码执行
同样的道理,因为需求设计,后台有时候也会把用户的输入作为代码的一部分进行执行,也就造成了远程代码执行漏洞。 不管是使用了代码执行的函数,还是使用了不安全的反序列化等等。

因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。

输入phpinfo();

输入:fputs(fopen('shell.php','w'),'<?php assert($_POST[123]);?>');

后台目录下会产生一句话木马

over permission(越权)

越权漏洞分为水平越权(A和B的权限级别相同,但只能操作各自的信息权限。A想要越权操作B的权限)和垂直越权(A的权限级别小于B,仍想要越权操作B的权限)

水平越权

提示有三个账号,选一个作为A,查看个人信息如下:

我们直接将网页上usename=lucy中的lucy改成另外一个账户lili试试,结果如下:

发现这样就可以直接登录进了lili的账号,查看到了lili的个人信息,但为什么能如此轻易的就登录进lili的账号呢?先看一下源代码

到下一个页面的源代码

源代码注释上也写了,没有权限检验,比如当前登录人是lucy,那么当lucy提交查看lili个人信息的请求时,Lucy就越权了,应该有检验查看信息请求的人是不是lili本人的代码。

垂直越权

登录提示中的超级用户,并使用其独有的权限,添加新用户well down,在发送这个添加用户请求的时候用BP抓包

看到新用户之后退出登录

接着用普通用户登录,可以看见,普通用户是没有添加用户权限的

刷新一下,查看bp代理HTTP记录最底下的GET

将这个普通用户登录用的   Cookie: PHPSESSID=cktndlla46p3te66eo0oq7sp89    复制记录下来,后面要用。

接着往上找一个post,这是之前超级用户添加用户的操作,右键发送给Repeater

用普通用户的cookie替换超级管理员的cookie,改完之后发送

回到靶场,刷新,就可以看到我们越权的结果了

看源代码之后可知,代码只是验证了登录状态,但是没有验证级别,所以普通用户使用超级用户权限时才没有得到制止。

敏感信息泄露

由于后台人员的疏忽或者不当的设计,导致不应该被前端用户看到的数据被轻易的访问到

例如前端写完代码后没有去掉一些注释,导致某些重要信息留了下来。

鼠标右键检查网页代码,搜索账号,截图如下,直接登录测试账号即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值