首先,是PHP代码审计,看懂就能解出来题。

  1. <?php
  2. error_reporting(0);
  3. session_start();
  4. require('./flag.php');
  5. if(!isset($_SESSION['nums'])){
  6. $_SESSION['nums'] = 0;
  7. $_SESSION['time'] = time();
  8. $_SESSION['whoami'] = 'ea';
  9. }
  10. if($_SESSION['time']+120<time()){
  11. session_destroy();
  12. }
  13. $value = $_REQUEST['value'];
  14. $str_rand = range('a', 'z');
  15. $str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];
  16. if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0){
  17. $_SESSION['nums']++;
  18. $_SESSION['whoami'] = $str_rands;
  19. echo $str_rands;
  20. }
  21. if($_SESSION['nums']>=10){
  22. echo $flag;
  23. }
  24. show_source(__FILE__);
  25. ?>

代码贴上,然后来分析。

观察发现,要拿到flag需要 $_SESSION['nums']>=10,而且开头对$_SESSION['nums']赋了0值,所以要需要下面的$_SESSION['nums']++,来使$_SESSION['nums']>=10,意思就是,我们需要在$_SESSION['nums']++的循环里循环十次,所以现在的目标变成满足循环条件$_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0。

md5部分我们用数组绕过就行了,主要是前面的$_SESSION['whoami']==($value[0].$value[1])。

刚开始$_SESSION['whoami']=='ea',所以第一次我们传递的时候需要传递value[]=ea,而后面,$_SESSION['whoami']变成了$str_rands,然后我们就需要获取到$str_rands,通过回显就能拿到。

手动爆破需要输入十次:

这样最后能爆出flag。

也可以用python脚本爆破:

  1. import requests
  2. url='http://1887c4fa5333467aab28d37a3daf1f0e464d6d28961a4e68.changame.ichunqiu.com/?value[]='
  3. s=requests.session()
  4. a=s.get(url+'ea')
  5. for i in range(10):
  6. a=s.get(url+a.content[0:2])
  7. print(i)
  8. print(a.content)

i春秋-web-爆破3的更多相关文章

  1. i春秋web作业2.26

    Web安全工程师(入门班) [全国线上入门班53期]课后作业   2020-2-26 DorinXL   1)为什么说js校验是一种不安全的校验方式? js校验不安全,是因为用户很容易通过控制台删除或 ...

  2. i春秋web作业2.25

    Web安全工程师(入门班) [全国线上入门班53期]课后作业   2020-2-25 DorinXL   请思考:XXE漏洞的原理的是什么?有哪些危害? XXE漏洞全称XML External Ent ...

  3. i春秋web作业2.24

    Web安全工程师(入门班) [全国线上入门班53期]课后作业   2020-2-24 DorinXL   分别尝试安装一个Windows和Linux操作系统 想要在虚拟机上装系统,首先需要下载对应的镜 ...

  4. kali视频学习(11-15)

    第四周kali视频(11-15)学习 11.漏洞分析之OpenVAS使用 12.漏洞分析之扫描工具 13.漏洞分析之WEB爬行 14.漏洞分析之WEB漏洞扫描(一) 15.漏洞分析之WEB漏洞扫描(二 ...

  5. i春秋CTF web题(1)

    之前边看writeup,边做实验吧的web题,多多少少有些收获.但是知识点都已记不清.所以这次借助i春秋这个平台边做题,就当记笔记一样写写writeup(其实都大部分还是借鉴其他人的writeup). ...

  6. Web暴力破解--前端JS表单加密进行爆破

    0x01 前言 常见的js实现加密的方式有:md5.base64.shal,写了一个简单的demo作为测试. 0x02 代码 login.html <!DOCTYPE HTML> < ...

  7. Web安全测试学习笔记-DVWA-登录密码爆破(使用Burp Suite)

    密码爆破简单来说,就是使用密码本(记录了若干密码),用工具(手工也可以,if you like...)一条条读取密码本中的密码后发送登录请求,遍历密码本的过程中可能试出真正的密码. 本文学习在已知登录 ...

  8. i春秋四周年庆典狂欢丨价值6000元的Web安全课程免费送啦

    重磅好消息 i春秋四周年庆典狂欢 感恩回馈新老用户 5888元的Web安全线上提高班 988元的Web安全线上入门班 免费送啦 快来围观 活动详情 1.活动时间:6月17日—6月30日 2.活动规则: ...

  9. [原题复现][2020i春秋抗疫赛] WEB blanklist(SQL堆叠注入、handler绕过)

    简介 今天参加i春秋新春抗疫赛 一道web没整出来 啊啊啊 好垃圾啊啊啊啊啊啊啊  晚上看群里赵师傅的buuoj平台太屌了分分钟上线 然后赵师傅还分享了思路用handler语句绕过select过滤.. ...

  10. WEB中间件--tomcat爆破,burp和python脚本

    1.tomcat 用burpsuit进行弱口令爆破 先抓包 发送到inturder payload type 选择custom iterater 第一个payload选用户名文件,第二个payload ...

随机推荐

  1. is application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem

    最近试着了解 c++,接触到了QT,写了一个测试程序,在开发环境下正常后移到非开发环境,报错 网上找资料说是少了platforms文件夹中的dll,把里面所有的dll复制到执行程序目录,还是提示,继续 ...

  2. sslopen RSA加解密

    一.  原理概念 OpenSSL定义: OpenSSL是为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其 ...

  3. Day8 - E - The very same Munchhausen CodeForces - 1120E

    A positive integer aa is given. Baron Munchausen claims that he knows such a positive integer nn tha ...

  4. python爬虫破解带有RSA.js的RSA加密数据的反爬机制

    前言 同上一篇的aes加密一样,也是偶然发现这个rsa加密的,目标网站我就不说了,保密. 当我发现这个网站是ajax加载时: 我已经习以为常,正在进行爬取时,发现返回为空,我开始用findler抓包, ...

  5. 016.Oracle数据库,取本季度第一天,取本季度最后一天

    /*取本季度第一天,取本季度最后一天*/ SELECT trunc(sysdate, 'Q') AS 本季度第一天 , add_months(trunc(sysdate, ) AS 本季度最后一天 F ...

  6. CSS样式表——列表与布局

    列表方块:针对<ol></ol>和<ul></ul> 属性style="list-style:none"               ...

  7. jmeter简单压测、下载文件

    一.jmeter做简单压测(单机) 1.添加需要压测的HTTP请求 2.添加聚合报告 3.设置压测场景 4.查看聚合报告 二.多机同时进行压测 1.在需要连接的电脑上打开jmeter  bin目录下的 ...

  8. MongoDB_01

    解释:MongoDB可应对 --三高需求 High performance-对数据库高并发读写的需求 Huge Storage -对海量数据的高效率存储和访问的需求 High Scalability ...

  9. 基于 Annotation 的装配(注解)

    注解:就是一个类,使用@注解名称 开发中:使用注解 取代 xml配置文件. 1. @Component取代<bean class=""> @Component(&quo ...

  10. P1005 继续(3n+1)猜想

    转跳点: