未完全补充的ctf(

WEB

  • ics-06

这题进入就是这个页面

试了一圈,只有报表中心这个页面能够进入

看到url存在id=1这个键值对

反复多次随机尝试修改id的值,发现页面没有变化

但是其他页面又无从下手

以为其他页面没跳转的原因是因为中间有个页面中转回来

所以尝试抓包

但是并没有抓到

倒回来继续研究这个唯一一个能打开的页面

最后还是觉得得从这个id下手

选择用burpsuite进行爆破

结果还真给爆出来了

打开这个长度最长的看回显

发现

  • unserialize3

进环境就看到下列php源码

class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
?code=

__wakeup()是反序列化的一个魔术方法

直接手搓也能得到现在的序列化内容

?code=O:4:”xctf”:1:{s:4:”flag”;s:3:”111″;}

如果直接传上这个code内容

会直接导致exit并返回“bad requests”

这种时候就需要让__wakeup魔术方法无法执行

直接将属性数目值随意篡改即可

即,将 {} 前的数字1改为任意数字即可

于是得到

  • Backup

这道题很有意思

这题一开始思路就走错方向了,明确说了是备份文件,是考备份文件url后缀的题

但是把我选择先打开源码看链接

得到的是无效的代码页面

很是遗憾

弄来弄去无果,选择了去看别人的WP

发现了还有备份文件后缀这种玩意

所以将所有常见备份文件的后缀进行保存

以便后来使用

最后基本思路就是在url后面

加个.bak就好了

最后得到flag

  • Cookie

这题有点吃了不熟悉F12的亏了

基本思路就是在下放的网页的url后面加

/cookie.php

这个好想的

因为打开F12看到cookie栏

有个look here

这个的值就是cookie.php

但是很简单的点就在于需要看到这个页面的标头

里面有个很明显的FLAG

  • disabled_button

这道题F12后被难在了如何更改源码上

汗颜,才知道原来是靠审查才能改源码

但是我并不了解为什么是删去disabled

可能是题目提示吧

之后看看原因

  • Get-post

Get请求牢记在url后面加个?name=value就好

例如

目标url?a=1

就完成了get请求

Post请求可以通过hackbar完成

用post data就好了

Post data选项勾上后,输入框直接写键值就好了

例如

B=2

  • simple_php

很奇怪的一道题

源码就如上图所示

很标准的php相关的题

GET请求有之前的经验

?加键值对就行了

但是吧,它的IF条件判断语句很有意思

if($a==0 and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;

这个很明显就是要两段flag拼凑嘛

但是在要flag1时

A=0这个键值不被承认

于是在我写下/?a=0 b=1235的时候,原以为会出现两个flag

实际上只出现了flag1

根本原因就是

它默认将我的0 b=1235认为是一段字符串

所以能够得到flag1而没有flag2

这也说明了get请求没法同时依靠url进行传参处理

查询攻略,发现需要用两次来进行请求

而第一次要求是一个带0的字符串

而第二次要求是一个数字在前且数字必须大于1234的一个字符串

这样才能得到flag

至于第二次的要求

全部来源于(is numeric($b))

  • command_execution

Linux ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。

本题题目有个ping和waf说法

找了一圈没发现什么办法

无奈只能因为第一次接触选择看攻略

后来才知道ping指令是Linux里面的

所以在题目所给的网页环境中

需要我们使用Linux的指令语句

我们先尝试着ping一个IP地址

这里先尝试使用本机地址192.168.1.1

响应很慢,但仍然能得到反应

后续多次尝试发现响应不了了

原因是延迟太高,丢包严重

于是现在连接本地网卡IP

127.0.0.1

得到以下响应

存在这样的三个包

我们大致会有一个把握

进行find搜索文件

直接搜索flag

键入127.0.0.1;find / -name ‘’flag*‘’        (这里是单引号,且name和值之间有个空格)

得到

Flag文件的路径就被找到了

接下来使用cat指令完成后续操作即可

也就是

127.0.0.1;cat /home/flag.txt

得到目标flag

  • weak_auth

这个题目很有意思

首先随便编造一个username去进行拦截

拦截的话用burpsuite就好了

然后由于是常用弱密码

我们自己通过下载的字典和burp suite的sniper功能进行密码爆破

我们拦截到包时

必须要保证出现$username=  

$password=   

这俩会出现在拦截包的末尾

在password=的末尾处

添加一个payload点

选定相应的弱密码字典

进行爆破

爆破结束后

查看返回字符最多的那个弱密码项

发现是123456这个弱密码

于是以此为密码进入网站内部

得到flag

注:在原网站看F12可以得知是弱密码类型,且username是admin

如果不知道username

可以添加两个payload点位

然后挨个爆破

但是没有实操过

以后做到了再补充

  • Xff&referrer

这个题又是新知识

考的就是这方面的内容

先进入题目环境

要求IP地址为123.123.123.123

题目有提到伪造xff和referer

`X-Forwarded-For`(通常缩写为 `XFF`)是一个HTTP扩展头部字段,用于在HTTP请求通过代理服务器或负载均衡器时标识原始请求的来源IP地址。这个头部字段通常由代理服务器添加或更新,以确保最终的服务器能够知道原始客户端的IP地址,而不是代理服务器的IP地址。

所以XFF就是用来伪造IP变成123.123.123.123的

而我们先将拦包内容发送到repeater(在burpsuite环境做题)

我们先加个XFF进行发送尝试

选择发送请求

得到响应内容

这里出现了部分响应内容

Document.getElememtById(“demo”).innerHTML=”     https://www.google.com”;

去进行搜索得知,这个指令是让

那么我们要进行的伪造referer就是目标url了

而referer是什么?

它用于指示一个请求是从哪个页面发起的。具体来说,它包含了一个URL,这个URL是用户点击链接或提交表单从而发起当前请求的页面地址。

  • PHP2

这道题很有特色

  • 要注意的是通过index.phps查看到页面的php源码
  • 审计源码,发现需要通过get方式传入一个参数 id=admin
  • Admin直接传入参数会被直接先一步报错,所以不能直接传参admin
  • 根据这个原因,对admin这个值进行url编码,而浏览器可以直接解码读取这个参数而不触发报错机制
  • 由于浏览器会直接解码,所以直接传入第一层加密密码还是会报错,所以对加密后的再一次进行url编码,并传入该值作为id的值

MISC

  • Railfence

有个叫做Railfence的网站,有栏目需求

实际上基本加密原理很简单

中文译名是栅栏加密

常规点的密码形式就是靠字母直接分栏做到的

比如gsfsafafatgfa    afaggarfarat

这两栏写为两排对齐

然后从左往右从上往下读即可

  • gif

这题给了一个压缩包,里面是黑,白两种方块状的图片,交替起来共103张图片

第一反应是组合成二维码,每个图片块是一个二维码的小块,但前四个图片打开后展现的情况是白黑黑白

如果是二维码,不管是什么排列方式,前面几张都应该是黑,就算有多截一圈白色方块,如果从上往下,从左往右的标准排列,也该是白白白白······ · · · ·

而其他排列方式也都会出现类似的同色连续的情况

所以排除二维码组合

(之后了解到,二维码的像素块是21*21=441,实际上这个也确实组不了二维码。。。。)

所以开始思考第二种思路

黑白的块,考虑摩斯密码,分别代表 · – 什么的

但输出结果不对

实际上看前四个代码的时候就有种莫名熟悉的感觉,白黑黑白,换一下表达方式也就是0110或者1001,实际上f的二进制就是01100110,二进制转文本试试看 得到

  • 如来十三掌

这道题确实有点考察实战经验了,开局给的是个佛曰的密码

密码还是很常规,但是解码出来的玩意很明显不是作为flag的内容,出于尊重出题人的恶趣味可能,选择改成对应的flag格式进行回答,显示回答失败,意识到可能并没有解决完成

考虑到市面上有多种佛曰工具,大致上都试了一下,发现其他解密工具都不认可这是佛语

很快意识到还有一层加密

选择对解密后的密文进行搜索

有说用rot-13进行解码,一种此前还没遇见过的新的加密类型

搜索在线rot-13解密网站

得到一串新的字符串

此时又进行尝试按照flag格式进行提交,但仍然显示错误

说明仍然试密文形式

新的字符串并没能想到往什么思路解密

最后反复尝试,很惊讶的发现是依靠base64进行解码

但是base64的特征是结尾的==

对于这种密文该如何敏感的进行察觉是个很有必要学习的方向

  • give_you_flag

GIF隐写,讲道理是需要抽帧去看GIF中的二维码出现的那帧的,但是莫名其妙的stegsolve里面的GIF文件没法抽帧,估计是我自己配置有问题,期待之后进行解决,这里的解决方法是通过使用录屏的方式获得某帧的二维码,比较简单粗暴

但是得到的抽帧二维码是残缺的

补上三个二维码定位点就好了

最后使用二维码在线识别工具进行识别就可以了

  • 坚持60s

看到是个jar文件,想到去java去编辑,但没找到java编辑器被放哪了

于是选择上虚拟机寻找Java的编辑环境

但是仍然没有找到

遂放弃直接看别人的WP

惊讶于有一个叫做ju-gui的一个软件,可以查看java程序的源码

直接看源码就得到了对应flag的一个条件判断语句

但是,得到的flag直接进行提交的时候存在问题,显示不是正确答案,观察发现是个密文,通过base64解码就可以得到正确flag

评论

  1. 土豆
    Linux
    7 月前
    2024-11-19 9:17:28

    不知道为什么,你写得很搞笑((ノ°ο°)ノ

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇