[极客大挑战 2020]welcome
界面打开后一片空白,查看题目描述,翻译过来是
1.除了GET请求方法,还有一种常见的请求方法…
2.学习一些关于sha1和array的知识。
3.更仔细地检查phpinfo,你会发现标志在哪里。
补充:
sha1:不能加密数组
根据提示1知道是post传参,抓包更改,在重发器中发现有回显,放包后得到php代码
代码要求用POST方式传入参数roam1
和roam2
的值,俩变量的值不能相等,但sha1()
加密后的值相等
发现找不到flag,这里去看了一下wp,发现是要找到flag所在文件夹
最后在请求头中找到flag
[WUSTCTF 2020]CV Maker
注册后发现上传界面
上传jpg文件,回显不是图像
尝试文件头欺骗,发现可以回显路径
访问得到空白界面,蚁剑测试连接成功
但打开发现都是空的,这里也不知道是怎么回事了
[SWPUCTF 2023 秋季新生赛]一键连接!
打开是一串php代码,要求用get传参,都是md5强比较,提示使用data协议,并且sha1要相等
绕过md5
绕过sha1
告诉我用蚁剑连接
测试连接成功
在根目录下找到flag
[NISACTF 2022]easyssrf
看见题目类型描述,这里需要去了解一下SSRF
SSRF
1.漏洞原理
ssrf——服务器端请求伪造,由攻击者构造请求,服务器发起请求。可以利用一个网络请求的服务,当跳板进行攻击,攻击者在访问A时,利用A的特定功能构造特殊payload,由A发起对内部网络中系统B(内网隔离,外部不可访问)的请求,从而获取敏感信息。此时A被作为中间人(跳板)进行利用。
2.产生与可利用协议
在PHP中的curl(),file_get_contents(),fsockopen()等函数是几个主要产生ssrf漏洞的函数
file_get_contents():将整个文件或一个url所指向的文件读入一个字符串中。
readfile():输出一个文件的内容。
fsockopen():打开一个网络连接或者一个Unix 套接字连接。
curl_exec():初始化一个新的会话,返回一个cURL句柄,供curl_setopt(),curl_exec()和curl_close() 函数使用。
fopen():打开一个文件文件或者 URL。
file_get_contents() 函数将整个文件或一个url所指向的文件读入一个字符串中,并展示给用户,我们构造类似ssrf.php?url=../../../../../etc/passwd
的paylaod即可读取服务器本地的任意文件。readfile()
函数与file_get_contents()
函数相似。
常用URL伪协议
file:/// -- 本地文件传输协议,主要用于访问本地计算机中的文件(file:///etc/passwd
)
dict:// -- 字典服务器协议,dict是基于查询相应的TCP协议,服务器监听端口2628
sftp:// -- SSH文件传输协议(SSH File Transfer Protocol),或安全文件传输协议(Secure File Transfer Protocol)
ldap:// -- 轻量级目录访问协议。它是IP网络上的一种用于管理和访问分布式目录信息服务的应用程序协议
tftp:// -- 基于lockstep机制的文件传输协议,允许客户端从远程主机获取文件或将文件上传至远程主机
gopher:// -- 互联网上使用的分布型的文件搜集获取网络协议,出现在http协议之前
3.漏洞利用方式
页面ssrf.php实现的功能是获取GET参数URL,然后将URL的内容返回网页上
CTF SSRF 漏洞从0到1 - FreeBuf网络安全行业门户
构造payload
file:///etc/password
发现不在flag.php文件里
file:///flag
尝试题目给的提示
file:///fl4g
直接访问后得到php代码,大致意思是关闭报错,get传参file
补充:
stristr
函数,应该是防止通过file变量进行file协议读取,过滤file命令
strstr,stristr,strops的区别:
strstr 区别大小写,从字符开始找如果有返回true否则就返回false
stristr 字符不区别大小写,从字符开始找如果有返回true否则就返回false
strpos 区别大小写strpos查找成功后则是返回的是位置。因为位置有可能是0,所以判断查找失败使用===false更合适。
题目描述中有伪协议,构造payload,得到base64编码
得到flag
[NISACTF 2022]checkin
题目打开是一串php代码,大致意思是关闭报错,用get传参
传了没什么反应
有点奇怪,选中前面的后面会自动选上
鼠标扫:扫前面有后面代码同步。
没什么思路,点了提示
用010打开并切换16进制
将需要传参部分的16进制编码复制下来(选中后点编辑,复制为),去掉空格,加上%
最终得到的payload为
ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6%55%67%65%69%77%6F%E2%81%A9%E2%81%A6%63%75%69%73%68%69%79%75%61%6E=%E2%80%AE%E2%81%A6%20%46%6C%61%67%21%E2%81%A9%E2%81%A6%4E%31%53%41%43%54%46
得到flag