前言
又是几天没有更新博客了,是有那么一丢丢懒哈哈,不过最近有考试(借口),这可不能怪我嗷。今天依旧是给小榆和各位小伙伴分享一波最近在攻防世界的wp,之后除了考试和复习会按时更新的啦~
高手进阶区和BUUCTF那边我也会去踩坑的,让小榆和大家见到一只菜鸟的成长叭。
使用工具:Firefox、Burpsuite、中国蚁剑。
参考:
https://blog.csdn.net/weixin_43460822/article/details/101596267、cnblogs.com/ainv-123/p/11595170.html
题目与wp
simple_php
打开网站可以看到下面这串代码:
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
大概意思就是:
以get方式传入一个参数a,要求 a>0 并且 a 为真,若是a满足该条件则输出flag1;再以get方式传入参数b,要求 b>1234 且 不是数字 ,若是b满足以上条件则输出flag2
代码看完了,接下来就构造get请求打印flag就好啦:
令 a=0a 得到 flag1:
再令 b=12345a 得到 flag2:
最后得到 flag:
Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
get_post
打开网址后可以看到这样的界面:
按照题目的要求以get方式提交变量a的值:
接下来按照题目要求以post方式提交变量b的值,此处建议使用Firefox,因为Firefox的Max HackBar插件用起来真的爽~(新版火狐的HackBar需要收费啦,所以……没办法啦)
提交之后即可获得本题的flag:
cyberpeace{1ba4bcbe857a0098474e3584256ffe28}
xff_referer
先来了解一波xff 和 referer:
xff :xff 是 X-Forwarded-For 的缩写,X-Forwarded-For 是一个 HTTP 扩展头部,用来表示 HTTP 请求端真实 IP
referer: referer用于告诉服务器请求从什么地方来
然后打开网站,但是只看到显示下面文字:
ip地址必须为123.123.123.123
这个时候就应该想到用Burpsuite抓包然后构造 xff 和 referer ,至于怎么想到的呢,题目有说哇:X老师告诉小宁xff 和 referer 其实是可以伪造的
好叭,光看题目我没有想那么多,抓头良久之后看了大佬的wp,仰望完之后才开始自己写的啦。
言归正传,打开Burpsuite抓包,然后 Sent to Repeater:
再到Repeater -> Headers里面就可以构造 xff 和 referer 啦~
由于题目中所给的信息中有ip地址必须为 123.123.123.123,所以在此处先构造 xff,如下图:
然后点Go,查看返回包的信息:
提示为 “必须来自https://www.google.com”,那就再构造一波referer,然后在Go一次就可以啦:
就可以得到flag啦:
cyberpeace{83c4e978eb40c6c149edc6a6a802b7fb}
webshell
本题考虑的是对网站后门的利用,在此处可以使用蚁剑或者中国菜刀等工具扫描网站:
蚁剑安装参考一位猛人朋友的博客: https://blog.csdn.net/Forces_/article/details/109810615
话不多说,直接开锤,现在蚁剑添加数据:
注意连接密码是 shell,至于为什么是shell呢?题目已经给啦:
添加好之后双击即可连接服务器,查看有没有与flag相关的信息:
将这个flag.txt文件点开就可以看到flag啦:
cyberpeace{c1cefe4bb56efa19d6f567c9ba7ea9a9}
command_execution
题目描述:小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。
注意题目中说没有写 waf,那就先来看看啥是 waf 叭:
Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。(来源百度百科)
ping命令中经常有注入漏洞,而且没有 waf,那就应该考虑一下 SQL注入,冲冲冲!
先测试一下命令:127.0.0.1&&ls ,看看有啥反应:
我们知道,flag通常是放在txt文件中的,那咱们就先看看有没有和flag相关的txt文件吧:
命令: 127.0.0.1 & find / -name flag.txt
可以看到在home目录下有一个flag.txt,那么接下来只需要使用命令查看flag.txt就能得到flag啦:
命令:127.0.0.1&&cat /home/flag.txt
flag: cyberpeace{2322d5b0977b4cce18761ef751609eea}
simple_js
先打开网站:
好家伙,一进来就要输入密码,先随便输入一个123试试,发现啥都没有了……
既然如此的话那就查看一波网页源代码:
发现不管输入什么都会跳到输入假密码的情况下,还得到这样一串东西:
\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30
使用python进行简单处理:
# 第一次转换:
s = "\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"
print(s)
print()
# 第二次转换:
a = [55, 56, 54, 79, 115, 69, 114, 116, 107, 49, 50]
c = ""
for i in a:
b = chr(i)
c = c + b
print(c)
得到运行结果: 786OsErtk12
再结合一波题目描述,可以得到 flag 为:Cyberpeace{786OsErtk12}
总结
每次打CTF都会学到很多的东西,收获一些之前没有的工具,记得有空就提醒自己打打CTF,这样才有东西分享给小榆,有东西给自己交代鸭~