natas(21-27)

natas21
  本关有两个页面,一个和之前的相同,显示“You are logged in as a regular user. Login as an admin to retrieve credentials for natas22.”,另一个好像是一个修改CSS的页面,查看第一个页面的源码,会发现和前一关相似,都是需要_SESSION[“admin”]==1才可看到下一级的密码。
在这里插入图片描述
  加上第一个页面提示,Note: this website is colocated with http://natas21-experimenter.natas.labs.overthewire.org,查看两个页面的源码,都有session_start()函数,然而这并不是突破点,联想前几关的操作,都是对PHPSESSID进行操作的,所以猜测两者的关联点在于session-id,第一关的源码要求SESSION[“admin”]==1,由此想到在第二个页面构造处admin=1.
第二个页面给的是一个css的修改:
在这里插入图片描述
  而查看源码,它并没有对提交的参数进行审核,只是将参数加载到会话中,所以我们可以对其进行修改。
在这里插入图片描述
将bgcolor修改成admin,yellow修改成1.
在这里插入图片描述
在这里插入图片描述
  提交用bp抓包,如此我们就构造出了admin=1的值了,将bp在实验页面修改admin=1抓包得到的PHPSESSID的值,替换到正常页面(也就是第一个页面的PHPSESSID),刷新即可得到密码。

natas22
  打开页面是一个空白页面,查看源码,看起来好像是需要我们在url中添加“revelio”,然而实验了之后发现我们回到原来的页面 ,再次仔细审计源码,会看到页面开头有一个重定向,php中的header()函数客户端发送原始的 HTTP 报头,也就是header()函数返回302重定向到浏览器。
  header(“Location: /”)中,header函数表示发送一个原始 Http Header到客户端,指定Location是进行重定向,/表示本地,即刷新。

在这里插入图片描述
在这里插入图片描述
  由此可以得到思路,url中添加revelio满足获取密码的条件,但同时需要避免刷新,所以可以使用bp抓包,把第一次抓到的数据包丢到repeater中go一下,就能避免第二次跳转,从而获得下一关密码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值