NSS题目练习9

[极客大挑战 2020]welcome

界面打开后一片空白,查看题目描述,翻译过来是

1.除了GET请求方法,还有一种常见的请求方法… 
2.学习一些关于sha1和array的知识。 
3.更仔细地检查phpinfo,你会发现标志在哪里。

补充:

sha1:不能加密数组

根据提示1知道是post传参,抓包更改,在重发器中发现有回显,放包后得到php代码

代码要求用POST方式传入参数roam1roam2的值,俩变量的值不能相等,但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传参

传了没什么反应

有点奇怪,选中前面的后面会自动选上

鼠标扫:扫前面有后面代码同步。

结论:源码中有特殊unicode字符的存在

没什么思路,点了提示

用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

  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值