BUUCTF-部分Web题WP

    科技2022-07-13  158

    [HCTF 2018]WarmUp

    PHP 代码审计 WP: 拿到题目查看源码,发现一个文件 打开后得到如下源码: 按照提示访问hint.php文件,得到提示: 猜想flag在ffffllllaaaagggg文件里,然后进行php代码审计,发现flag可能包含在file文件夹里了,经过多次尝试目录穿越,得到flag: 当然,这里用hint.php也行。

    [极客大挑战 2019]Havefun

    WP: 打开网址查看源码: 看见一段被注释掉的PHP代码。代码提示,如果请求page?cat=xxx,在页面上输出xxx,如果cat=dog时,页面上输出Syc{cat_cat_cat_cat}。 直接请求page?cat=dog,得到flag:

    [极客大挑战 2019]Secret File

    WP 打开题目网址: 查看源码发现一个文件链接: 进去一看: 再次点击后: 啥也没有,提示我回去再仔细看看,照做,发现原来是把一个按钮字体设为了与背景颜色一样的,蒙蔽了我的双眼,全选后: 点进去之后发现还是同样的页面,查看源码也没有发现什么有用的信息,根据页面提示猜想,在SECRET操作之后是否发生了一个持续时间很短的页面跳转?于是用Burp Suite抓包看一下: 果然有个被注释掉的文件,访问一下: 根据提示访问flag.php文件: 还是没有! 仔细一看,发现文件包含,结合题目一下想到的文件隐藏,猜测flag在后端文件中,并需要我们去读取他,传入的file经过了过滤,但是没有过滤filter 这里可以用php伪协议来读取flag.php 构造playload: ?file=php://filter/convert.base64-encode/resource=flag.php

    将得到的信息base64解码后得到:

    [GXYCTF2019]Ping Ping Ping

    WP 打开题目网址: 页面在问我们ip是什么,题目名也提示我们要ping一下ip. ping出了一个ip,访问一下:

    用linux命令 ls 列出目录下的文件: 用linux的文本输出命令 cat 查看某个文件的内容: 应该是过滤了空格,可以用${IFS}$代替: 可能也过滤了{},用$IFS$1代替: 一目了然过滤了啥,flag字眼也过滤了,bash也没了,不过sh没过滤, payload:

    ?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

    其中: 得到flag: 这行payload不懂可以看一下这位大佬的文章: https://www.ghtwf01.cn/index.php/archives/273/

    [极客大挑战 2019]Knife

    WP

    查看源码未找到解题线索,但通过 这句话一看就知道是一句话木马。先解释一下eval函数:所有的字符串放入到eval当中,eval会把字符串解析为php代码来进行执行,那么结合$_POST[“Syc”]的话,只要使用post传输时在name为Syc的值中写入任何字符串,都可以当做php代码来执行。 php一句话木马,通过菜刀等工具可以上传或执行命令。而题目说菜刀丢了!!!但这里给了你一个php后门程序的密码Syc,可以用比**webshell终端管理工具的“启蒙导师”“中国菜刀”**功能更加强大而且好用的webshell终端管理工具——中国蚁剑读取该url的所有文件:

    [ACTF2020 新生赛]Exec

    WP 这道题与攻防世界上的新生题 command execution非常相似。 输入网址后出现: 典型的命令执行漏洞,先用Linux命令ping一下看看,结果ping出了一个index.php文件。 cat看一下: 发现一段被注释掉的php代码,而且发现没有对输入进行任何的过滤,那就试试用 ls 命令看看根目录下的文件:

    发现了flag文件,cat看一下:

    [ACTF2020 新生赛]Include

    WP 点进去看一下: 题目已经提示是文件包含漏洞,而且url也提示了 ‘flag.php’ 文件,故尝试使用伪协议 php://filter 读取该文件内容,构造playload:

    ?file=php://filter/convert.base64-encode/resource=flag.php

    Base64解密得:

    [极客大挑战 2019]Http

    WP 打开题目网址查看源码发现: 访问后: 要求我们从 ‘https://www.Sycsecret.com’ 进入该页面,用 burpsuite 抓包看一下: 那我们在请求头中增加 Referer 字段即可: HTTP Referer是 header 的一部分,当浏览器向 Web 服务器发送请求的时候,一般会带上 Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。 要求我们使用 ‘Syclover’ 浏览器访问该页面,故修改一下 UA 字段: User Agent 中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。 要求我们必须从本地访问该页面,我们可以通过添加 XFF 头来实现伪装: X-Forwarded-For(XFF)是用来识别通过 HTTP 代理或负载均衡方式连接到 Web 服务器的客户端最原始的 IP 地址的 HTTP 请求头字段。

    [极客大挑战 2019]EasySQL

    WP 打开题目链接发现是一个充满黑客色彩的登录页面,但是没有注册的功能,根据题意猜测出题人是想让我们注入进去吧。 逐步尝试在用户名或密码处加一个单引号,点击登录后我们发现报错了: 在报错信息中可以看到是字符类的注入,可以通过“万能密码”来直接登录进去,在url中这样构造:page/check.php?username=admin’or’1’=‘1&password=admin’or’1’=‘1 这样我们的账号密码不对(or前面),就会执行or后面的’1’='1’这是一个恒真的,我们使用错误的账号密码来达到了登录成功的目的。(sql的一种绕过姿势)

    [ACTF2020 新生赛]BackupFile

    WP 新生赛题,有点水。 打开题目网址: 题目提示“Try to find out source file!”,访问备份文件/index.php.bak获得index.php源码: 要求GET方式传递一个Key值,并且Key必须为数字且等于123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3这一字符串. 感觉是考PHP的弱类型特性,int和string是无法直接比较的,php会将string转换成int然后再进行比较,转换成int比较时只保留数字,第一个字符串之后的所有内容会被截掉,所以相当于key只要等于123就满足条件了:

    Processed: 0.011, SQL: 8