Guess Next Session

看题目提示,是一道代码审计:

 1 <?php
 2 session_start();
 3 if (isset ($_GET['password'])) {
 4     if ($_GET['password'] == $_SESSION['password'])
 5         die ('Flag: '.$flag);
 6     else
 7         print '<p>Wrong guess.</p>';
 8 }
 9
10 mt_srand((microtime() ^ rand(1, 10000)) % rand(1, 10000) + rand(1, 10000));
11 ?>

其中的判断条件就是$_GET['password'] == $_SESSION['password'],传入的password要等于session中的password,在PHP配置中的默认情况下,Session是用Session ID来确定当前对话所对应的服务器Session,sessionID可在cookie中找到,当我们删除cookie中的sessionID后,$_SESSION['password']就会返回空,我们同样传入空的password就能绕过了

先拿burp抓包,果然是存在PHPSESSID,删除后面的值,password不要赋值,go一下就能拿到flag

Once More

又是代码审计╮(๑•́ ₃•̀๑)╭

 1 <?php
 2 if (isset ($_GET['password'])) {
 3     if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
 4     {
 5         echo '<p>You password must be alphanumeric</p>';
 6     }
 7     else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
 8     {
 9         if (strpos ($_GET['password'], '*-*') !== FALSE)
10         {
11             die('Flag: ' . $flag);
12         }
13         else
14         {
15             echo('<p>*-* have not been found</p>');
16         }
17     }
18     else
19     {
20         echo '<p>Invalid password</p>';
21     }
22 }
23 ?>

先给出ereg()函数与strpos()函数的详细解释。

代码的首先判断传入的password中是否只含有字母跟数字,接着要求password长度小于8且数值大于9999999,并且password中要含有*-*

这里有两种方法:

1.ereg()截断漏洞
因为ereg函数存在NULL截断漏洞,导致了正则过滤被绕过,所以可以使用%00截断正则匹配。
构造payload:password=9e9%00*-*
注:其中#必须用%23代替

2.当ntf为数组时它的返回值不是FALSE
构造payload:password[]=111

转载于:https://www.cnblogs.com/Ragd0ll/p/8643400.html

实验吧_Guess Next SessionOnce More(代码审计)相关推荐

  1. 西普实验吧ctf-web-程序逻辑问题(代码审计)

    题目地址:http://ctf5.shiyanbar.com/web/5/index.php 查看页面源代码,发现index.txt隐藏文件  又是一道代码审计的题目: if($_POST[user] ...

  2. 2-1 【实验】08-后缀加点绕过+代码审计

    我们这篇文章,将讲述pass-07,pass-07的利用方法,跟我们之前讲的差不多,它用的还是windows的一个特性,在前面一篇文章里面,我们讲过,在后缀名里面,如果加一些空格的话,它会自动抹掉,那 ...

  3. 实验吧_NSCTF web200FALSE(代码审计)

    挺简单的一个代码审计,这里只要倒序解密就行了,这里给一下python版的wp 1 import codecs 2 import base64 3 4 strs = 'a1zLbgQsCESEIqRLw ...

  4. 实验吧_登陆一下好吗(骚注入)你真的会PHP吗?(代码审计)

    登陆一下好吗 首先看到两个输入框,分别对应账号密码,随手输个admin,admin进去,提交后发现有回显,既然题目说了过滤了一切,那就先看看过滤了些啥 经过一波测试,发现服务器过滤了union,sel ...

  5. 记一次CTF实验吧的代码审计

    0X01 0X01 Burp抓包找到hint 访问地址看源码 <?php$info = ""; $req = []; $flag="xxxxxxxxxx" ...

  6. hex editor怎么搜索代码_代码审计从入门到放弃(三) phplimit

    原创: 一叶飘零 合天智汇 前言 接着前面的代码审计从入门到放弃(一) & function.代码审计从入门到放弃(二) & pcrewaf 本次是phplimit这道题,本篇文章提供 ...

  7. [网络安全提高篇] 一〇九.津门杯CTF的Web Write-Up万字详解(SSRF、文件上传、SQL注入、代码审计、中国蚁剑)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.这篇文章主要介绍5月9日参加津门杯CTF题目知识,包括power_cut.hate_ ...

  8. php逻辑难是难在sql,[实验吧] 所有web writeup

    实验吧 writeup 打算把实验吧所有的web题做一遍 花了一个礼拜多的时间吧 有些也看了wp不得不说收获挺大 WEB 简单的登录题 F12看下网络里面里面的请求头中有一个tips:test.php ...

  9. 代码审计利器-RIPS实践

    什么是RIPS? RIPS是最流行的静态代码分析工具,可自动检测PHP应用程序中的漏洞. 通过对所有源代码文件进行标记化和解析,RIPS能够将PHP源代码转换为程序模型,并检测在程序流程中可能被用户输 ...

最新文章

  1. linux python2和python3共存_linux-Centos7安装python3并与python2共存
  2. mybatis 传递set集合
  3. C语言中printf是不是关键字,C语言中printf是什么意思
  4. 刷脸支付弊端举例_刷脸支付的优势和弊端,你都知道?
  5. 如何使用markdown编辑器?官方文档在此
  6. java类加载及new对象的过程
  7. kido机器人没反应_机器人不能钩的三个英雄,章鱼妈上榜,钩中图四我方直接团灭!...
  8. char型变量能不能存储一个中文汉字重写和重载的规则
  9. Windows - 电脑屏幕眼睛保护色的取值
  10. Excel提升(一)-----如何做经济学人风格的图表
  11. 达芬奇导入gif(含 AE 和 PR)
  12. python中flag标志用法_标记变量flag的用法
  13. Environment Mapping
  14. 网络基础知识详解(图解版)
  15. xml解析错误语法错误
  16. 1、【易混淆概念集】-前三章 1 工作绩效数据、信息、报告
  17. B3U3 Text A Language Focus 共32词
  18. php面试题5---php面试题系列
  19. Codeforces 115 B Lawnmower【思维】
  20. 大数乘法(快速傅立叶变换)下

热门文章

  1. hadoop常用基础命令
  2. MySQL字符集问题
  3. 提问:Server Application Unavailable
  4. mysqldump 导出数据库中每个表的前100条(前n条)
  5. spring的jdbcTemplate的多数据源的配置,springboot的jdbcTemplate的多数据源的配置
  6. larvel 路由未生效_laravel-5 – 将Laravel 5项目部署到托管后路由无效
  7. mysql datapump_mysqlpump参数详解
  8. matlab运行时风扇,TCFD和CAESES耦合优化案例-轴流风扇
  9. Java开发者需要掌握的基础知识
  10. D - 区间覆盖问题