i春秋“百度杯”CTF比赛 十月场-Vld(单引号逃逸+报错注入)
题目源代码给出了提示index.php.txt,打开拿到了一段看不太懂得东西。

图片标注的有flag1,flag2,flag3,同时还有三段字符,然后还出现了_GET,脑洞一一点想到访问
?flag1=fvhjjihfcv&flag2=gfuyiyhioyf&flag3=yugoiiyhi
后面还提示了一步the next is XXX.zip,估计是要下载网站的备份压缩包。也确实是这样的,我们下载到了1chunqiu.zip,下面就是代码审计了。
在login.php里面对$username这个变量的处理存在漏洞会导致单引号逃逸从而导致sql注入漏洞。
下面这个地方对$username的处理是将$username中的$number删除。然后去空。同时在进行sql查询的时候$username会被单引号包裹。

但是在这之前用经过safe_data函数的处理,这个函数返回的值是转义过的。

%00会被转义成\0 ,同时在进行sql查询的时候$username会被单引号包裹,那么可以想办法闭合掉单引号。如果$username的值是%00',经过safe_data处理%00‘变成\0',这个时候如果0去掉那就变成\',\对\转义那么'就可以逃逸出来,我们可以使$number=0,那么就可以使单引号逃逸出来。
接着使用updatexml报错注入
数据库报错,说明单引号逃逸成功。因为后台的sql语句为:
select * from `table_name where` where username='\\'';
那么多出个单引号肯定报错。

暴表
username=%00' and updatexml(1,mid((select concat(1,group_concat(table_name)) from information_schema.tables where table_schema=database()),1),1)#&password=9&number=0

前半段的flag
username=%00' and updatexml(1,mid((select * from flag),1,41),1)#&password=9&number=0

后半段flag
username=%00' and updatexml(1,mid((select * from flag),21,41),1)#&password=9&number=0

i春秋“百度杯”CTF比赛 十月场-Vld(单引号逃逸+报错注入)的更多相关文章
- i春秋——“百度杯”CTF比赛 十月场——Vld(Vulcan Logic Dumper 、php opcode、sql 报错注入)
打开题目看到提示 "do you know Vulcan Logic Dumper?" ,再查看源码看到"<!-- index.php.txt ?>" ...
- [i春秋]“百度杯”CTF比赛 十月场-Hash
前言 涉及知识点:反序列化.代码执行.命令执行 题目来自:i春秋 hash 如果i春秋题目有问题可以登录榆林学院信息安全协会CTF平台使用 或者利用本文章提供的源码自主复现 [i春秋]"百 ...
- i春秋 百度杯”CTF比赛 十月场 login
出现敏感的信息,然后进行登录 登录成功发现奇怪的show 然后把show放到发包里面试一下 出现了源码,审计代码开始 出flag的条件要user 等于春秋 然后进行login来源于反序列化后的logi ...
- i春秋-“百度杯”CTF比赛 十月场-Login
源码发下提示 尝试登陆 得到个什么鬼, 但是相应包里发现个可疑的东西 // CTF中的0 和1 这些一般都有套路的 然后在请求头里 改为 1 ##代码审计来了.. 分析了半天 后来看了别人的 ...
- i春秋 “百度杯”CTF比赛 十月场 web题 Backdoor
0x00: 打开题目,题目中告诉我们这题是文件泄露. 0x01: 通过扫描目录,发现可以扫到的有3个文件 index.php flag.php robots.txt 但是浏览flag.php它告诉我们 ...
- i春秋——“百度杯”CTF比赛 十月场——EXEC(命令执行、带外通道传输数据)
查看源码得知由vim编写,所以查找备份以及交换文件 找到 /.index.php.swp ,下载后用vim -r恢复该文件即可得到源码 1 <html> 2 <head> 3 ...
- i春秋——“百度杯”CTF比赛 十月场——Not Found(http请求方法,client-ip伪造ip)
这道题也是让我很迷... 打开就是not found,让我一度以为是服务器挂了,细看发现有个404.php 访问也没发现什么东西,只有来自出题人的嘲讽 haha~ 不过在首页的header中发现个奇怪 ...
- i春秋——“百度杯”CTF比赛 十月场——GetFlag(md5碰撞、文件包含、网站绝对路径)
需要提交的captcha满足等式,肯定就是MD5碰撞了 附上脚本 import hashlib def func(md5_val): for x in range(1,100000000): md5_ ...
- i春秋——“百度杯”CTF比赛 十月场——Login
根据页面源码提示的 test1 test1 登录 刷新此页面并抓包,有个show=0值得关注 在发送的包的header中加一句show:1,即可得到member.php的源码 <?php inc ...
随机推荐
- excel判断数据是否存在另一列中
1.if(EXACT(A2,B2)=TRUE,"相同","不同"),A2,B2相同(字母区分大小写)则函数值true正确,反馈相同,反之返回不同.注:单元格值受 ...
- Dockerfile优化方式
如今GitHub 仓库中已经包含了成千上万的Dockerfile,但并不是所有的Dockerfile都是高效的.本文将从四个方面来介绍Dockerfile的最佳实践,以此来帮助大家编写更优雅的Dock ...
- 区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space
区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space 译自: Domain, Subdomain, Bounded Con ...
- 11、函数(def)
11.1.函数: 函数即变量 函数的作用域只跟函数声明时定义的作用域有关,跟函数的调用位置无任何关系 1.函数格式: def test(x): ''' 2*x+1 :param x:整形数字 :ret ...
- linux中的vim用法
p.p1 { margin: 0; font: 16px ".PingFang SC"; color: rgba(53, 53, 53, 1) } p.p2 { margin: 0 ...
- JAVA WEB 用servlet实现分页,思路比较清晰和简单。
JAVA WEB 用servlet实现分页,思路比较清晰和简单.借鉴了其他大佬的思路.特别感谢. 是我第一次发表博客,如果有什么错误,欢迎大家指出!,谢谢 一.思路分析 前台一定是有类似这种的界面 点 ...
- 你知道购买车票的原理吗?Java 线程同步
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索[程序职场]关注这个执着的职场程序员.我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验. 大周末的还是6点起床,起床的第 ...
- ROS踩坑笔记总结
2019-07-12 11:32:16 我的第一篇原创博客(当然是站在巨人肩膀上,有些内容参考了其他大神的博客,都一一做了说明),这些是我之前在学习ROS期间经历的一些坑,以及相对应的解决方案,希望可 ...
- ARTS第十一周
受辞职考研和新冠肺炎疫情影响,一直没更.遗憾,数学和专业课再高点就有戏了.继续. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3. ...
- 分享一份550多个Linux命令的文档,按照命令首字母索引排序
输入一个命令,让我给你一个关于它的完美解释! 众所周知,Linux命令是IT人必须掌握的一个技能,有了它,我们可以部署和维护各种各样的服务和应用.但是,大部分的Linux命令我们不一定记得住,而别是各 ...