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

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

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

switch循环有一个特点, 如果 case条件对应的代码体中没有 break或者其他循环控制的关键字, 则会继续执行下一个 case条件的代码, 这里我们传递 3, echo '@A@' 以后, 会继续执行 case 6000000 对应的 echo "$url"

?c=3

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

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

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

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

获取当前使用的数据库

获取表

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

获取字段

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

获取数据

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

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

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

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

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

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

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

成功获取flag

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

  1. ctfshow-萌新-web9( 利用命令执行漏洞读取网站敏感文件)

    ctf.show 萌新模块 web9关,这一关考察的是命令执行漏洞的利用方式,使用PHP的命令执行函数执行系统命令,读取网站根目录下的配置文件,获取flag 页面中展示了部分源码,很明显是作者提示我们 ...

  2. ctfshow-萌新-web13( 利用代码执行漏洞获取网站敏感文件)

    ctf.show 萌新模块 web13关, 这一关的考点是代码执行漏洞, 需要灵活的运用各种命令执行函数, 源码中过滤了system, exec, highlight函数, cat命令, congfi ...

  3. ctfshow-萌新-web11( 利用命令执行漏洞获取网站敏感文件)

    ctf.show 萌新模块 web11关, 这一关考察的是命令执行漏洞的利用, 源码中过滤了一部分命令执行函数和文件查看的命令, 推荐使用 passthru()函数配合 more命令获取敏感文件中的f ...

  4. fn_dblog_如何使用fn_dblog和fn_dump_dblog直接在SQL Server数据库中连续读取事务日志文件数据

    fn_dblog 大纲 (Outline) In this article, we'll discuss how to read SQL Server transaction logs. This a ...

  5. tinyxml 读取文本节点_【C++】【TinyXml】xml文件的读写功能使用——写xml文件

    TinyXml工具是常用比较简单的C++中xml读写的工具 需要加载 #include "TinyXml\tinyxml.h" 在TinyXML中,根据XML的各种元素来定义了一些 ...

  6. 【C++】【TinyXml】xml文件的读写功能使用——写xml文件

    TinyXml工具是常用比较简单的C++中xml读写的工具 需要加载 #include "TinyXml\tinyxml.h" 在TinyXML中,根据XML的各种元素来定义了一些 ...

  7. ctfshow-萌新-web14( 曲线救国-POST请求绕过获取网站敏感信息)

    ctf.show 萌新模块 web14关, 此关卡是一个代码执行漏洞, 重点在于命令执行函数的利用方式, 源码中过滤比较严格, 尤其是过滤了分号;之后, 虽然可以用?>来代替分号, 但这样一来就 ...

  8. ctfshow-萌新-web12( 利用命令执行函数获取网站敏感信息)

    ctf.show 萌新模块 web12关, 这一关考察的是代码执行漏洞的利用, 重点在于命令执行函数的利用方式, 推荐使用反引号(``) 或者 base64加密绕过 页面中展示了部分源码, 并提示我们 ...

  9. ctfshow-萌新-web10( 利用命令执行漏洞获取网站敏感信息)

    ctf.show 萌新模块 web10关,这一关考察的是命令执行漏洞的利用,闯关者需要知道3个以上PHP命令执行函数的使用,推荐使用 passthru() 页面中展示了部分源码,并提示我们 flag ...

最新文章

  1. 禁止COOKIE后对SESSION的影响
  2. 自学python需要多长时间-零基础学习Python开发需要多长时间?
  3. linux基础知识复习
  4. 前苹果副总裁:20-40-60法则
  5. Unity3D ShaderLab 菲涅耳内轮廓
  6. 设计模式整理之简单工厂
  7. C标准I/O缓冲区:全缓冲和行缓冲
  8. 22504!Windows 11 新预览版发布
  9. box-sizing -- 盒模型
  10. python安装第三方库-常见错误解决
  11. Java 9 中的 9 个新特性
  12. Spring基于注解的配置概述
  13. python实现观察者模式_举例讲解Python设计模式编程中的访问者与观察者模式
  14. 踏实学习前端,学技术,必有高薪,好的人生,学习量大能力要求高就对了
  15. css字体倾斜角度_css如何设置字体倾斜样式
  16. [每日一氵] 正则表达式以x开头,以x结尾的字符串
  17. access有效性规则不为空值_access窗体文本框有效性规则中输入is not null无效
  18. 无限战争选择服务器,无限战争新手攻略 新手入门必看技巧
  19. 图像的区域选取(matlib)
  20. uni 登录token方法_uni-app 中保持用户登录状态

热门文章

  1. 《构建之法》课程总结及建议
  2. 从word得到表格数据插入数据库(6位行业代码)
  3. HDU 2588 GCD amp;amp; GCD问题总结
  4. JavaScript初学者系列一:JavaScript基础(上)
  5. Visual Assist X Options 常用宏
  6. Error: EBUSY: resource busy or locked, lstat ‘D:\DumpStack.log.---基于Vue的uniapp手机端_前端UI_uview工作笔记004
  7. Vue条件渲染---vue工作笔记0008
  8. 大数据_MapperReduce_从CSV文件中读取数据到Hbase_测试---Hbase工作笔记0022
  9. Sentinel热点Key降级下_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0043
  10. Python工作笔记002---PYTHON之DEF函数