ctfshow-WEB-web14( 利用数据库读写功能读取网站敏感文件)

本文阅读 3 分钟
首页 安全分享,WEB安全 正文

ctf.show WEB模块第14关是一个SQL注入漏洞, 绕过switch循环后可以拿到一个登录界面, 登录界面存在SQL注入, 脱库以后会提示flag在另一个文件中, 利用数据库的文件读写功能读取文件内容即可拿到flag

 

img

开局是一个switch循环, 需要传递参数 c, 参数对应的执行结果有四种: '$url', '@A@', $url, "$url" ; 前两个是字符串, 没啥用, 作者的目的应该是想让我们输出后两个 $url 的其中一个, 但输出之前还有个sleep(), 选的不合适就会睡眠很长时间, 这里我们传递一个 3即可

首先科普一个PHP的特性: 单引号包裹的内容只能当做纯字符串, 而双引号包裹的内容, 可以识别变量, 所以源码中的 "$url" 可以当做 $url 变量被正常执行

?c=3

img

 返回了一个文件, 很明显线索就在这里, 接下来我们访问一下这个文件

img

 

是一个登录界面, 盲猜存在SQL注入漏洞, 先给个true, 使SQL恒成立, 页面正常显示

img

再给个false, 使SQL恒不成立, 页面空显示 img

 由以上结果可以确定存在SQL注入漏洞, 注入点为数值型注入, 页面有回显, 推荐使用联合注入

获取当前使用的数据库

img

 获取表

-1/**/union/**/select/**/group_concat(table_name)from/**/information_schema.`tables`/**/where/**/table_schema=database()

img

 获取字段

-1/**/union/**/select/**/group_concat(column_name)from/**/information_schema.`columns`/**/where/**/table_name='content'

img

获取数据

-1/**/union/**/select/**/group_concat(username,password)from/**/content

img

 ??? 一个秘密??? 不讲武德, 提示秘密里面有一个秘密( secret), 结合开头 switch循环页面中引入了一个 secret.php, 线索应该就在 secret.php 里面

img

 

先访问一下 secret.php 文件, 可以正常访问, 没有报404, 说明这个文件确实存在, 而且就在根目录下, apache的默认网站根路径是 /var/www/html, 我们试一下读这个文件的内容

img

 利用数据库的文件读写功能读取文件内容

-1/**/union/**/select/**/load_file('/var/www/html/secret.php')

 页面并没有反应, 用代理工具( BrupSuite)抓包试试

img

 

可以看到文件的内容, 里面并没有flag, 而是提供了一个新的线索, 接下来我们根据提示读取 /real_flag_is_hereimg

 

 成功获取flag

img

 

 

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/wangyuxiang946/article/details/120168557
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复