CTF—WEB渗透

CTF—WEB渗透 

1.view_source


看题目就知道这应该是看源码就能找到flag。

打开后我们发现不能右击查看源码,那么我们F12,在查看器里发现flag。
所以提交cyberpeace{e1f66c0513b6d331cd2932f6b51f2769}

方法:

1.摁F12

2.用burp抓包

3.view-source:ip:端口

2.robots

作为一个web狗,不得不知道roborts,robots.txt是爬虫协议,这其实就是一个遍历目录,将列举出全部内容(前提是服务器存在robots.txt)
我们直接访问robots.txt这个文件,看看有没有(或者正常做法是用御剑等扫描器扫描目录,得到这个文件,但是如果你知道这个东西的话,是可以直接访问的。)

很幸运的发现flag所在地。
直接访问f1ag_1s_h3re.php,
获得本次flag,提交cyberpeace{f8f285333cb631a3d6f32d3e310e1246}

3.backup

根据题目描述,我们不难看出是需要找备份文件,这里需要普及一些知识

常见的备份文件后缀名有:“.git” 、“.svn”、“ .swp”“.~”、“.bak”、“.bash_history”、“.bkf” 

进入答题网址后,发现是需要找index.php的备份文件,我们将上述备份文件后缀名依次尝试,

之后,试到.bak的时候
出现下载文件,不用说,这就是啦。

下载完成后,用记事本打开,获得本题flag
提交Cyberpeace{855A1C4B3401294CB6604CCC98BDE334}

4.cookie


本题很明显需要用到cookie

进入答题网址后,出现如上图内容,那就看cookie呗,F12-网络-cookie他让我们去看cookie.php,其实这就看出学好php的好处了,如果你学了php你会直接去访问那个页面的,不过我们现在也找到了不是么。访问吧那就,

页面提示让看http响应头


于是,我们发现了本题的flag
提交cyberpeace{dcea78001cf02d210cad875cd52eaceb}

5.disabled_button

看到题目描述,一个前端限制题目,很简单的。

进入答题网址后,发现有个flag的按钮,但是不可以点击,很明显这是有着前端限制,于是,F12,定位到flag处的代码。

发现了不能点击的元凶,删除disabled,回车。

此时,flag按钮就可以点击了,点击后,获得本题flag。
提交cyberpeace{2af04bca19696d4067747edb5fe14280}

6.weak_auth

看到描述,首先想到的是爆破,再看题目,弱口令。。

进去后,一个登录页面,印证猜想,我们先直接点login,看看会不会给点提示


告诉了我们usename,于是我们只需研究密码,先随便输个弱口令试试,这里哈,我后来使了个123456直接就出来了。。。但是我们还是讲讲正经步骤

密码错误的时候,转入check.php,查看源码,它提示我们可能需要一个字典,那么我们就直接burp上弱口令字典爆破吧。
burp抓到包后,发送到intruder准备爆破

首先选择爆破点。

之后我们加载一个弱口令字典(没有的话百度自行下载,或者你可以自己想一些弱口令,都写在这,当然速度明显会慢,还是直接下载一个字典比较好,或者可以用字典生成器自己生成)

为了速度, 我修改了线程为50,你自己看着改,别太慢就行(注:burp的社区版不能修改线程哦)
于是开始我们的爆破,很快就完成了


我们进行长度筛选,

找到长度和大部分不一样的,直接点进去,查看响应头,发现本题flag。
提交cyberpeace{134664bed156798412b00ef6d5088e9a}

7.simple_php

看题目,简单的php,我们看题吧
哦豁,来进行一波代码审计吧,这段php代码的意思是,通过get方法得到a和b的值,然后如果a==0a==0 并且a==0且a为真,得到flag1,如果b是整数或者数字字符串,就退出,然后如果$b>1234就得到flag2.,很容易发现,这是一个php弱类型的题,对于php弱类型我不是很懂,我就记住了一句话,不会构造就加[],我们来构造一下payload吧,首先a若为真很好弄,直接令a==0就好了,

我们已经获得一部分flag了,接下来就是整flag2,首先b不能是整数或数字字符串,就是不能都是数字,最后还需要值大于1234,那么我们可以构造个12345a,值大于1234,并且不是纯数字(这里构造方式很多样,你甚至都可以b=12345[])于是我的payload构造为?a==0&b=12345a

回车,

获得完整的flag
提交Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}

8.get_post

首先读题,可以看到应该会和get和post这两种请求方法有关。我们进入答题网址。

哦吼,很简单的一个要求哈,get方式就是将参数直接放入url中,我们直接构造payload如下:

?a=1

回车后就出现了第二个要求,让用psat方式传参,这里呢可以采用bp抓包的方式,由于我略懒,所以我直接用火狐的hackbar插件。

直接传入,网页上就出现了本次的flag

所以提交cyberpeace{9a37cc19a11317631f5c30e9a1536aab}

方法解释

  • 了解http请求方法,此处考察get和post两个最常用的请求方法。
  • HTTP协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的不同操作方式,具体介绍如下:

  • GET:向特定的资源发出请求。

  • POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的创建和/或已有资源的修改。

  • OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。

  • HEAD:向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

  • PUT:向指定资源位置上传其最新内容。

  • DELETE:请求服务器删除Request-URI所标识的资源。

  • TRACE:回显服务器收到的请求,主要用于测试或诊断。

  • CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

  • 工具:
    • 火狐浏览器插件hackbar (F12打开)

Load URL

选中Post data

输入b=2

Excute

9.xff_referer

首先读题,发现描述中写到了个xff和referer的伪造,大概知道了本次的考点,就应该是修改请求头
了。我们进入题目。
首先就是对于ip地址的一个要求,这里我们用bo抓包来修改IP地址,为了方便,我们抓包后发送到repeter来进行。
考虑到修改IP地址,所以我们需要在响应头中添加 X-Forwarded-For: 123.123.123.123(常用修改ip地址的方法),这里有一个点需要注意一下,就是这条语句不能放在最下面一行,也不知道是不是我的bp的问题,如果放在最下面就访问总是失败,希望有知道的大佬告诉我一声。

在响应包中看到了这么一句js语句,结合题目要求,所以我们构造referer内容:Referer:https://www.google.com


发送之后,获得本次的flag

所以提交cyberpeace{1e0953984b3f692cec93e7d02b6b22ab}

10.webshell

老规矩,读题目,根据题目和题目描述很容易看出,这就是他上传了个一句话木马,我们需要连上他的一句马来寻找flag,那我们就可以用蚁剑,或者hackbar来操作了,好,我们进入题目网址来看看。

哦吼,把一句话木马的内容写出来了,这不就直接告诉了我们蚁剑的连接密码么,我们先来蚁剑走一波。根据题目提示,我们知道他把木马放到了index.php中,就该是咱一进去看到的那个。

直接测试连接,成功,那么我们保存后,访问内容,

哦吼,,flag.txt很轻易的发现了

而里面也正是我们的flag。下面介绍一下用hackbar的做法,我们使用post的方式,来查看一下浏览器目录,所以我们构建如下payload:shell=system(“ls”);

发送后,发现,

存在一个flag.txt我们直接访问它

同样获得了本次的flag,其实这貌似还给我们一个思路,就是一开局直接就flag.txt试试呗,万一成功了不是血赚么。
所以我们提交:
cyberpeace{36329b304d3216199f2ebeb609807352}

11.command_execution

读题目,看到她虽然写了一个ping功能,但是不具备waf,也就是没有web应用防火墙,那么我们或许可以用到一些命令执行哦。我们先来看题

不如,先ping一下本机看看,也就是127.0.0.1

是可以ping通的,那么我们就来尝试命令拼接执行的方法了。
首先尝试一下127.0.0.1&&ls

ok,命令拼接是可以执行的,同时也确定了这是一台linux服务器,,所以开始我们本次的目标,获得flag,,所以我们全局搜索flag,命令如下:

127.0.0.1 &&find / -name "flag*"

虽然出来很多,但是我们可以明显感觉到flag.txt里就是我们的答案,所以我们cat查看一下。

127.0.0.1&&cat /home/flag.txt

于是,获得本次flag,提交cyberpeace{a9ef69ee4d60ffeb4ae392667a9b0d6d}

12.simple_js

先读题目,只有题目的js感觉会用到,那我们就直接看题吧

一进去就让我们输入密码,巧了,我们这也不知道呀,所以随便输一个吧。

提示密码错误哈,不管它,继续,点完确定之后,发现出现个什么都没有的白页面,不过标题有着很明显的JS

所以,我们来查看源码想都不用想,又到了读代码的时候了,我们发现不论输入什么都会跳到假密码,真密码位于 fromCharCode 。通过和上面的对比,很明显x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30
这是很离谱的。所以我们需要把它转换为10进制,这里我们直接用python吧。
构造exp为

s="x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30"
print(s)

获得一堆数组,这是我们需要将它转换为字符串,所以,再次用python构建exp:

s=[55,56,54,79,115,69,114,116,107,49,50]
for i in s:
      print(chr(i),end='')


获得一个字符串,我们根据格式,提交Cyberpeace{786OsErtk12}
结果正确,本题结束。

共同学习,共同进步!!!

安徽奥斯科信息科技有限公司
电 话:0551-63839550
地 址:安徽省合肥市高新区天智路14号时代智谷创业园101室
本文版权归作者和博客园共有,不以任何盈利为目的,旨在大家共同学习,共同进步!!!但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律声明责任的权利。
原文地址:https://www.cnblogs.com/Auscoo/p/13691048.html