i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞、文件包含、网站绝对路径)
2024-10-20 01:49:19
需要提交的captcha满足等式,肯定就是MD5碰撞了
附上脚本
import hashlib def func(md5_val):
for x in range(1,100000000):
md5_value=hashlib.md5(str(x)).hexdigest()
if md5_value[:6]==md5_val:
return str(x) print func(raw_input('md5_val:')) raw_input('ok')
尝试后发现登录处存在sql注入,于是用 ' or 1# 登录
看了下下载的几个文件发现都没有什么用,不过这个下载链接让我想到了文件包含/Challenges/file/download.php?f=
尝试读取index.php,构造../inedx.php,但是发现只要文件名包含 任意字符+斜杠 都会提示 flag{wow!!!but not true},看来是屏蔽了目录穿越,多次尝试绕过无果,后来看了眼其他wp,这里并没有屏蔽斜杠,所以还可以用绝对路径,通过返回的header " X-Powered-By: PHP/5.5.9-1ubuntu4.19 " 得知服务器系统是ubuntu,一般网站的路径即为 /var/www/html 。
所以构造/Challenges/file/download.php?f=/var/www/html/Challenges/flag.php
看到这个 " echo file_get_contents("helloctf.php"); " 想直接包含改文件,但是发现提示error,所以继续审代码
第一眼觉得很麻烦,不过细看一下觉得这个实在没难度,构造 flag=flag; ,注意有分号的,因为eval()执行的是一句完整的php代码,当然要以分号结尾。然后eval() 那句执行的就是 $spaceone = flag; ,然后没反应? 查看源码就可以看见了
最新文章
- React学习笔记-5-初始化阶段介绍
- java基于socket的简单聊天系统
- 170多个Ionic Framework学习资源(转载)
- json的解释
- GO语言练习:第一个Go语言工程--排序
- MySQL-(Master-Slave)配置
- Spring 简单入门实例
- hust1384---The value of F[n]
- Hive 安装过程中的问题
- 【转】聊聊HTTPS和SSL/TLS协议
- 关于embed的一些使用兼容
- HBase数据库配置中各配置项的释义及默认值
- Spring Cloud 2-Eureka服务发现注册(一)
- iOS 初探代码混淆(OC)
- 04 Tensorflow的中的常量、变量和数据类型
- 步步为营-42-通过DataAdapter实现增删查改
- word文档重新打开后文档结构错乱
- 解决 weblogic poi3.9 报错 a different type with name ";javax/xml/namespace/QName";
- 技巧:利用putty通过win7访问ubuntu
- Java - 数组JVM角度详解