zoukankan      html  css  js  c++  java
  • 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室
    本文版权归作者和博客园共有,不以任何盈利为目的,旨在大家共同学习,共同进步!!!但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律声明责任的权利。
  • 相关阅读:
    ffmpeg中的sws_scale算法性能测试
    ffmpeg 新老接口问题及对照集锦
    入门视频采集与处理(显示YUV数据)
    RGB与YUV图像视频格式的相互转换
    ffmpeg视频解码简明教程
    FFmpeg源代码简单分析——sws_getContext()
    FFmpeg解码H264及swscale缩放详解
    我所理解的ThreadLocal
    网络通信Socket模块实现文件传输
    设计一个基于flask的高并发高可用的查询ip的http服务
  • 原文地址:https://www.cnblogs.com/Auscoo/p/13691048.html
Copyright © 2011-2022 走看看