【hackthissite】Basic 8 SSI注入

翻译:

Sam还是认为怪怪的密码文件名很不错,但是他弃用了日历程序,他把没有加密的密码文件放在了/var/www/hackthissite.org/html/missions/basic/8/。

但是,Sam的小女儿斯坦芬妮刚学会了PHP编程,她很有天赋,但是没有学习安全相关知识。最近她学会了如何保存文件,而且写了一个脚本以证明她的实力。

难度等级:5

涉及知识:linux命令,php命令,shtml

解法:

1、在输入框随便输入一个字符,点击后跳转到这里,说明这里有个level8.php。显示的是“文件已保存”,说明level8.php会获取输入框的内容并且存储在文件里。

2、点击跳转到这个网址,并且显示了输入值的长度。

3、SHTML文件(以.shtml文件扩展名的文件)和HTML文件差不多,都是网页文件,只是SHTML文件中有服务器端包含(server-side includes,SSI)指令。它在发送到用户浏览器之前由web服务器进行处理(或解析)——把SHTML文件中包含的SSI指令解释出来,服务器传送给客户端的文件,是已经解释的SHTML,不会有SSI指令——它实现了HTML所没有的功能。

可以看下这个大佬的介绍:
SHTML文件介绍-CSDN博客

4、也就是说,当我们在输入框里输入ssi指令的时候,php就会帮我们自动发送给shtml,由shtml执行。

于是尝试输入了下:

<!--#exec cmd="ls;"-->

哈哈哈,出于安全,hts的后台限制了部分命令。

5、于是尝试<!--#exec cmd="ls .."-->

估计是;之类的关键字被限制的原因,现在就显示“文件已保存”,点击后显示:


6、怪怪的文件名,那不就是这个au开头的东东了嘛。在地址里如下输入:

https://www.hackthissite.org/missions/basic/8/au12ha39vc.php

7、看到密码了:5a48a4f7。

知识点巩固拓展:

1、shtml的命令注入是由于shtml进行模板渲染的方式,所以后端在获取前端的输入时,需要进行反注入的处理,才能够运用在后端。

2、在网址后面加入文件名就可以直接访问,是以前的web的查看方式,在现在诸多框架存在的时代,这种方式已经很难使用,因为在框架里会指定路径对应的文件。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值