攻防世界WEB高手进阶区第三周

PHP2

[题目描述]暂无
[题目场景]
在这里插入图片描述

这句话的意思是“你能告诉我这个网站吗?”,首先我们先获取php的源代码 在url后面输入/index.phps
在这里插入图片描述

我们可以发现这个代码不完整,打开该页面的源代码
在这里插入图片描述

我们可以看到php代码前面一部分被注释掉了,现在我们把代码复原
在这里插入图片描述

我们可以看到我们需要传入参数id,id的值有两个要求

  1. 不满足"admin"===$_GET[id]
  2. 通过$ _GET[id] = urldecode($ _GET[id]);实现$_GET[id] == “admin”

当传入参数id时,浏览器在后面会对非ASCII码的字符进行一次urlencode,在本段代码中还要再进行一次urlencode,所以在输入参数id的值时需要二次编码
admin的一次编码为:%61%64%6d%69%6e
admin的二次编码为:%2561%2564%256d%2569%256e
所以参数id的值为%2561%2564%256d%2569%256e
在这里插入图片描述

Ps:1.也可以只使一个字母进行转码,其余字母保持不变
2.url编码的值是%+字符的ASCII码值的16进制

Unserialize3

[题目描述]暂无
[题目场景]
在这里插入图片描述

分析代码我们可以得出这道题用code参数传参,且参数值需要绕过_wakeup()函数
先进行序列化操作
设$y=new xctf(“flag”)
在这里插入图片描述

得到 O:4:“xctf”:1:{s:4:“flag”;s:3:“111”;}
当序列化字符串中表示对象属性个数的值大于真实的属性个数时会跳过__wakeup的执行。所以将:1:改为:2:即可绕过_wakeup函数
即code=O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;}
在这里插入图片描述

Upload1

[题目描述]暂无
[题目场景]
在这里插入图片描述

我们可以看到这是一个上传文件的窗口,先查看源代码,可以看到js代码
在这里插入图片描述

可以知道文件只能上传.jpg和.png文件 如果上传别的种类的文件则会有弹窗提示“请选择一张图片文件上传”。所以我们需要绕过js前端

首先我们在地址栏输入:about:config
在这里插入图片描述

将这个选项布尔值 true 改为 false
在这里插入图片描述

此时就可以绕过js前端限制

我们写一个一句话木马
在这里插入图片描述

其中pw 即为密码

现在将php文件传上去,得到
在这里插入图片描述

验证一下会不会报错
在这里插入图片描述

不会报错 接下来就连接中国菜刀

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Supersqli

[题目描述]随便注
[题目场景]
在这里插入图片描述

我们可以看到一个查询框,随便测试两个数字看一下
在这里插入图片描述
在这里插入图片描述

我们先判断是什么类型的注入

  1. ‘ --+;返回正常
  2. ‘ and 1=1 --+; 返回正常
  3. ‘ and 1=2 --+; 返回数据与原始请求有差异。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

可以看出存在SQL数字型注入
在这里插入图片描述

发现对select、update、delete、drop、insert、where、. ,这些字符和单词进行了过滤。尝试大写绕过等方式,发现无法绕过。
我们可以用sqlmap获取当前数据库的名称
在这里插入图片描述

但是我们无法获取数据库中表的名称

我们可以用堆叠注入的方法获取表名
在这里插入图片描述

查询表中的字段
在这里插入图片描述

我们可以看到在表名为1919810931114514中有flag字段

查询表中数据 我们可以用预处理的语句来获取 预处理语句:1’;use supersqli;set @sql=concat(‘s’,'elect * from 1919810931114514');PREPARE pre FROM @sql;EXECUTE pre;–+
在这里插入图片描述

Easytornado

[题目描述] Tornado 框架
[题目场景]
在这里插入图片描述

我们依次打开这三个文件
在这里插入图片描述

我们可以看到flag就在/fllllllllllllag这个文件中
在这里插入图片描述

看到render我们可以想到SSTI tornado render模板注入
在这里插入图片描述

url中的结构为file?filename=* * * * &filehash=*******

从第一个文件我们可以知道filename=/fllllllllllllag,
从第三个文件我们可以知道filehash=md5(cookie_secret+md5(filename))

我们先输入/fllllllllllllag试试看
在这里插入图片描述

可以看到报错了 且页面的返回是由msg的值决定的,我们尝试修改msg的值
在这里插入图片描述

页面返回“1”,所以可以形成注入
我们现在需要知道cookie_secret的值是什么。
render是一个类似模板的东西,可以使用不同的参数来访问网页,在tornado模板中,存在一些可以访问的快速对象,例如{{ escape(handler.settings[“cookie”]) }}
这个handler.settings对象handler 指向RequestHandler
而RequestHandler.settings又指向self.application.settings
所以handler.settings指向RequestHandler.application.settings
这里就是我们的环境变量,我们就从这里获取cookie_secret
在这里插入图片描述

接下来需要完成的是md5(cookie_secret+md5(filename))
利用MD5加密工具

在这里插入图片描述
在这里插入图片描述

就可以得到filrhash= 194cc042a0f104f9ba4f82304bbfd4b2
所以url为
http://220.249.52.133:32263/file?filename=/fllllllllllllag&filehash=194cc042a0f104f9ba4f82304bbfd4b2
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值