进去md5碰撞,贴一下脚本代码

import hashlib
def md5(value):
return hashlib.md5(str(value).encode("utf-8")).hexdigest() for i in range(1,9999999):
if (md5(i)[0:6] =="f5ce8c"):
print(i)
break

登录处存在SQL注入,直接万能密码就能登录。登录后给了三个文件,提示flag在根目录下,点开a.php的同时我们抓包,自己尝试了许多路径,最接近的是改成f=/var/www/html/../flag.php,也没用。真正的路径是/var/www/html/Challenges/flag.php我就在想这些大师傅都是怎么想到的。



访问得到源码。

<?php
//POST方式提交参数flag
$f = $_POST['flag'];
//将得到的flag参数中的一些字符去掉
$f = str_replace(array('`', '$', '*', '#', ':', '\\', '"', "'", '(', ')', '.', '>'), '', $f);
if((strlen($f) > 13) || (false !== stripos($f, 'return')))
//flag参数满足长度大于13或者flag参数中有return两个条件中的一个则输出
{
die('wowwwwwwwwwwwwwwwwwwwwwwwww');
}
try//这里用到了异常处理,先执行try中的语句,有异常则执行catch中的语句
{
eval("\$spaceone = $f");
}
catch (Exception $e)
{
return false;
}
if ($spaceone === 'flag'){//如果spaceone变量等于字符串flag,则输出helloctf.php文件中的内容
echo file_get_contents("helloctf.php");
} ?>

满足$spaceone === 'flag'。而$spaceone = $f,$f可控,那么我们用post方式提交flag=flag,但是并没有拿到flag。其实这里是触发了异常处理,eval() 函数把字符串按照 PHP 代码来计算。该字符串必须是合法的 PHP 代码,且必须以分号结尾。如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。这里我们在post的时候加个分号拿到flag。



这里还可以使用PHP的另一种字符串构造方法<<<自定义定界符

<<<selfDefineDelimiter
your string
selfDefineDelimiter

因为有换行的存在,我们要把上面所有的字符都进行url编码,然后在burp上构造post参数flag,对照ASCII码表进行手动编码:

<<<a
flag
a;
%3c%3c%3c61%0a
%66%6c%61%67%0a
%61%3b%0a %3c%3c%3c61%0a%66%6c%61%67%0a%61

请求也需要我们自己构造:注意:Content-Type字段的值

POST /Challenges/flag.php HTTP/1.1
Host:8a855db687b64c05b02efc0fa87b4fa1f11579a7eb864268.game.ichunqiu.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 44 flag=%3c%3c%3c%61%0a%66%6c%61%67%0a%61%3b%0a

“百度杯”CTF比赛 十月场-Getflag(md5碰撞+sql注入+网站绝对路径)的更多相关文章

  1. i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞、文件包含、网站绝对路径)

    需要提交的captcha满足等式,肯定就是MD5碰撞了 附上脚本 import hashlib def func(md5_val): for x in range(1,100000000): md5_ ...

  2. [i春秋]“百度杯”CTF比赛 十月场-Hash

    前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash  如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...

  3. "百度杯"CTF比赛 十月场——EXEC

    "百度杯"CTF比赛 十月场--EXEC 进入网站页面 查看源码 发现了vim,可能是vim泄露,于是在url地址输入了http://21b854b211034489a4ee1cb ...

  4. i春秋——“百度杯”CTF比赛 十月场——Vld(Vulcan Logic Dumper 、php opcode、sql 报错注入)

    打开题目看到提示 "do you know Vulcan Logic Dumper?" ,再查看源码看到"<!-- index.php.txt ?>" ...

  5. “百度杯”CTF比赛 十月场_GetFlag(验证码爆破+注入+绝对路径文件下载)

    题目在i春秋ctf大本营 页面给出了验证码经过md5加密后前6位的值,依照之前做题的套路,首先肯定是要爆破出验证码,这里直接给我写的爆破代码 #coding:utf-8 import hashlib ...

  6. “百度杯”CTF比赛 十月场 Hash 复现

    进入题后老套路得到两个关键: 1.$hash=md5($sign.$key);the length of $sign is 8 2.key=123&hash=f9109d5f83921a551 ...

  7. i春秋 “百度杯”CTF比赛 十月场 web题 Backdoor

    0x00: 打开题目,题目中告诉我们这题是文件泄露. 0x01: 通过扫描目录,发现可以扫到的有3个文件 index.php flag.php robots.txt 但是浏览flag.php它告诉我们 ...

  8. “百度杯”CTF比赛 十月场_Login

    题目在i春秋ctf大本营 打开页面是两个登录框,首先判断是不是注入 尝试了各种语句后,发现登录界面似乎并不存在注入 查看网页源代码,给出了一个账号 用帐密登陆后,跳转到到member.php网页,网页 ...

  9. i春秋-“百度杯”CTF比赛 十月场-Login

    源码发下提示 尝试登陆 得到个什么鬼, 但是相应包里发现个可疑的东西   //  CTF中的0 和1 这些一般都有套路的 然后在请求头里 改为 1 ##代码审计来了..   分析了半天 后来看了别人的 ...

随机推荐

  1. 整理!企业选择好用的CRM系统的要点(上)

    随着市场经济的发展,对任何行业的企业来说,客户都是非常重要的一个部分.CRM系统帮助企业做到以客户为中心,它可以根据客户的具体要求进行跟进和反馈,在很大程度上提高公司的客户服务水平和客户满意度,进而提 ...

  2. SpringBoot:Service层使用@Autowired 注解 mapper对象爆红问题

    问题点 这个报错可能导致程序运行大面积爆红 这个报错会逼疯强迫症 解决方法 为避免程序运行报错 ,需要在Application.class添加注解@MapperScan(mapper包位置) @Spr ...

  3. vim 知识点小结

    vim用法可以学习:vim用法 Vim修改tab为4个空格 vi /etc/vim/vimrc 添加:set ts=4 vim中翻页的快捷键:向上翻页 ctrl+b,向下翻页 ctrl+f vim替换 ...

  4. Jmeter之cokie管理器和http默认值

    根据上文中,都配置好以后就可以开始启动了,点击启动,线程组里面就会开始记录你的网页请求.这里使用CNode网站做测试.我分别记录进行了"登入","话题创建",& ...

  5. QT从入门到入土(三)——信号和槽机制

    摘要 信号槽是 Qt 框架引以为豪的机制之一.所谓信号槽,实际就是观察者模式.当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号 (signal).这种发出是没有目的的,类似广播 ...

  6. mybatis复杂映射

    1. 类型名对应 当实体类与表中字段完全一致时,mapper文件里返回类型用resultType,否则要用resultMap,并且建立resultMap映射 package com.rf.domain ...

  7. python使用笔记24--面向对象编程2

    类方法 类里面自带的方法,不用实例化就可以调用,想象,模型上自带的功能 类方法是公共的,在实例方法里面可以随意调用 但是在类方法里不能调用实例方法,不能使用实例变量,但是他可以调用其他的类方法 1 @ ...

  8. matlab——插值与拟合

    @ 目录 前言 一.拟合 1.定义 2.三种判别准则 3.最小二乘法 (1)一般形式 (2)常用函数 (3)matlab实现 二.插值 1.定义 2.方法 (1)分段线性插值 (2)拉格朗日插值多项式 ...

  9. 小程序框架WePY 从入门到放弃踩坑合集

    小程序框架WePY 从入门到放弃踩坑合集 一点点介绍WePY 因为小程序的语法设计略迷, 所以x1 模块化起来并不方便, 所以x2 各厂就出了不少的框架用以方便小程序的开发, 腾讯看到别人家都出了框架 ...

  10. Spring 学习笔记(2) Spring Bean

    一.IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期.也就是管 ...