BugKu Web(前20)

版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,欢迎指正。 https://blog.csdn.net/qq_26406447/article/details/90553254

BugKu Web(前20)

前言

练习ctf,bugku web前20道,文件上传打不开网页没做

题目

  1. web2

    一堆滑稽动图…查看源码,右键没有查看源码(可能被禁用了),ctrl+u查看源码拿到flag
    1

  2. 计算器

    一个验证码码框第一反应是验证码绕过,但输入的时候发现限制输入,使用Noscript来禁js发现不行,根本就与服务器进行通信。看来是要看js了,找到js代码(最烦代码审计了,js和php基本都不会)结果这个代码审计真的是十分简单,flag直接在代码中了
    2

  3. $_GET

    这道题没什么意思啊,根据代码构造下代码请求就出flag了
    3

  4. $_POST

    这和上面的题基本一样,只是get变为了post,hackbar用起来
    4

  5. 矛盾

    这里考查php的==与===的差别,可以自行百度(php我也是不是很熟,但ctf很喜欢出这样的题前段时间遇到过===的矛盾,利用是一个比较新的大数漏洞…)
    5

  6. web3

    这道题也没什么难度,Ctrl+u查看源码,看到flag,但是是ascii码形式,写个py脚本转化一下就得到flag

    6
    7

  7. 域名解析

    这道题考查域名解析,计算机首先拿到域名后是先去本机的hosts文件(不知道的自行百度)找有没有对应的ip,没有再去访问DNS

    这里按照题目要求在hosts添加上,再去访问域名,就能拿到flag了
    8

  8. 你必须让他停下

    可以看到一个不断跳动的不显示图片

    查看源码提示JavaScript,用noscrirt禁掉js后没用…也没得到flag

    OK,burp来抓包,用repeater,发现flag。js确实不行,做出来后想不明白原理…
    9

  9. 变量1

    本地包含那道题服务器好像挂了访问不了,暂时跳过
    10
    可以看到题目是给出的代码,首先正则匹配那里,只要是字符串就能绕过if了,后面eval是执行命令,var_dump($ a r g s ) args)是执行输出命令 ( a r g s ) args)里面的 args是我们输入的变量,外面的$是再把这个输入当做变量

    可以看到最上面用include包含了flag.php,这里就需要php的一点知识了全局变量global和$GLOBALS的区别

    Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。

    所以这边我们加上?args=GLOBALS就OK了

    参考:https://www.cnblogs.com/Strive-count/p/6155066.html

  10. web5

    这道题有个输入框,没什么想法,先看网页源码
    11
    然后就很显然了,做过类似题的肯定一下就想到去运行那一大段东西了
    12
    可以看到直接出结果看,大写就是正确答案了

  11. 头等舱

    打开后,提示什么都没有,网页源码也没有任何提示信息。

    我是想到看robots.txt,然后扫描下网站路径也什么都没有,

    这时候抓了下包看下,OK,响应头就有flag
    13

  12. 网站被黑

    没做出来,有段js代码看了下也没发现什么,后面看说是扫描路径,能扫到shell.php。也就是已经被别人上传了大马了,也符合题目名了,但问题是要密码
    14
    这就需要爆破了

    找一个webshell的字典来跑一下
    15
    可以看到hack,然后登陆得到flag

    这道题的提示也很有意思,这个题没技术含量但是实战中经常遇到

    确实很有道理,很有可能要攻击的网站已经有别人放过马了,这时候,要是能用别人的马就方便很多了

  13. 管理员的系统

    一个简单的登录界面,随便尝试一下,发现提示ip禁止访问

    X-Forwarded-For: 127.0.0.1,在header里添加

    再登录,发现提示无效凭证,OK,先想到注入,利用burp,repeater来手工

    手工没发现注入点,OK,sqlmap跑起来,同时字典口令也跑起来

    结果跑出了口令
    16
    登录拿到flag
    17
    正确啊,但发现登录后页面很长,拉到最下面发现还有一个字符串<!-- dGVzdDEyMw== -->

    OK,base64解码后发现是test123…

  14. web4

    提示看源码

    OK,点开源码,看到一串js代码,
    18
    不会js…不过直接运行看看吧,把下面的eval改成alert弹出内容看下
    19
    就可以看到函数了,看到一个if条件,把数值拿去提交,返回flag(上面的那一串其实就是url编码,用url解码也可以看到函数)

  15. flag在index里

    这道题点击后看到url,?file=show.php很自然的想到文件包含漏洞,直接改成flag.txt试一下,没有,然后题目给的提示是index,index是php文件,用php://filter来读取文件

    参考:https://blog.csdn.net/destiny1507/article/details/82347371

    读出来的base64加密数据经base64解密后就是index.php源码,其中就有flag
    20
    ?file=php://filter/read=convert.base64-encode/resource=index.php

  16. 输入密码查看flag

    看了下源码,手工随便试了下都没什么特别的地方

    最值得注意的就是初始界面提示的输入5位数密码,然后这个页面也没有房爆破的机制,直接爆破啊,这个数量级是完全可以爆破的

    爆破拿到口令后提交得到flag

  17. 点击一百万次

    这个有提示JavaScript

    打开源码,能看到js代码
    21
    可以看到点击次数大于1000000会提交,clicks

    那我们直接提交,就拿到flag了
    22

  18. 备份是个好习惯

    这道题有点难…代码审计的头大(不会php…)

    从名字来看就是.bak文件泄露,OK打开页面,一串md5值,解密结果是空密码…

    这就很烦啊,不知道该找什么文件了…

    那就只能路径扫描了
    23
    可以看到扫到了index.php.bak下载回来,代码审计

    不会php看着巨头大
    24
    这里还是考到了==的知识点,和双写绕过(有key的过滤)

    index.php?kekeyy1[]=something&kekeyy2[]=anything,不会php真的很难…

  19. 成绩查询

    这道题也是很直接的sql注入,没什么难点,注意表名的时候用16进制就OK了(不会的练下dvwa)
    25

猜你喜欢

转载自blog.csdn.net/qq_26406447/article/details/90553254