御林网络安全工作室训练营2023 DAY1-2
ENCODE
百度一下各种编码很容易找到特征的
HTTP
将网页在代理中请求拦截到重放repeater
网站后缀添加/?key1=YulinSec即以get方式发送key1=YulinSec
第二步
post参数传递key2=YulinSec
使用POST提交方法和GET类似,将GET改为POST,在末尾添加,此时记得添加Content-Type: application/x-www-form-urlencoded
第三步
来自"YulinSec://127.0.0.1"
更改Referer值为YulinSec://127.0.0.1
之前请求好几次都失败原来是打错成了Refer,假知识害人不浅呐你
第三步
你必须是管理员
注意右一栏set-cookie里面的元素:admin
因此我们添加cookie,令admin=1
发送请求就得到了数据
method
使用OPITIONS方法进行连接得到flag
calc-3
普通计算结果后要求我们更快,尝试使用脚本操作,python,我也是现学的
【09-理论课】如何用Beautiful Soup解析HTML内容?_哔哩哔哩_bilibili
编写python代码实现打开并登录网页、对网页进行点击、输入信息等操作_python 操作网页_shiaohan的博客-CSDN博客
新版selenium中 find_element_by_xpath 已失效的解决方法_browser.find_element_by_xpath_周工不解梦哦的博客-CSDN博客
Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式_find_element python_轻烟飘荡的博客-CSDN博客
已经可以成功输出了print了
先来看一段错误代码
错的原因是发送两次请求不一样
数据来源是一个request请求,操作却在driver里面完成故结果不对
更正:
得到flag
HTTPS
先burpsite抓个包
第一步
你必须是admin
set-cookie中的token 试试base64
将内容改为admin=1
以cookie形式传递,好像还是不行
经过仔细观察发现中间有个点,而点之前的内容正好是可读字符,说明后半段不是base64编码
md5是数字字母组合且是16或32位,不满足条件
base64长度为4的倍数,不满足
剩余部分为53个字符,除去中间长度正好52,可能是两段base64编码但不是UTF-8
思考:题目名字是HTTPS
查资料
JWT,iat,jti,exp
[CTFSHOW]JWT_ctfshow jwt csdm_Y4tacker的博客-CSDN博客
还是得看大佬的
文件包含
tips:cltr+F可以快速检索phpinfo中你想找的信息
LFI-1,LFI-4同理
当然,直接加后缀不会给你看到flag的
点击phpinfo发现get传递参数file,同时没有禁用函数
?file=php://filter/read=convert.base64-encode/resource=flag.php
base64解码
真.捧到脸上 还是谢谢各位大佬们的指导了
LFI-2
故技重施-怎么想都不可能(出题人好可爱好好好好
/?file=eval();
方向正确,接下来要知道是哪个文件才可以用cat抓取
LFI-5
php伪协议总结 - My_Dreams - 博客园 (cnblogs.com)
get传进去的参数file同时有过滤
这里的这个函数没有用来过滤
我们使用远程文件包含 php://input伪协议
POST传递一句话让他以为是这个文件
POST里的内容就写 I want flag
先burpsite抓包链接发到重放器更改以下内容
请求得到flag
LFI-2
查看phpinfo没有禁用函数,文件包含也打开,同理使用php://input
<?php @eval(system('ls')); ?>
看上去应该就是flag那个文件了
<?php @eval(system('cat flag_195780473.txt')); ?>
LFI-3
第三题不让我们用phpinput了。会提示”hacker“,
提示在当前目录下某个文件,也就是用data://
在链接后面直接加/?file=data://,<?php @eval(system('ls')); ?>就可以,经过链接回车跳转自动url编码后%20替换空格,%27替换单引号,用burpsite发送请求记得url编码
在链接后面直接加/?file=data://,<?php @eval(system('cat flag_8491675293.txt')); ?>,得到flag