Web学习21-1

攻防世界

一.模板注入

题目:Web_python_template_injection
知识点:Python SSTI,404模板注入

这一周听了一次关于SSTI的课,于是就在攻防世界里试了试,
最终做出来了,不过是在看了题解的前提下…
在这里插入图片描述

**

收获

**
更加了解Python SSTI,404模板注入,懂了一些其中的原理.
特别是有一个题解,给了我很大的帮助.
在这里插入图片描述
在这里插入图片描述

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

二.Web_php_include

php文件包含
简单的代码审计、php源代码文件,GET行参数的请求和url编码知识以及服务器的初次解码知识、了解phps文件.
知识点:①urldecode()函数会将传入的值进行url解码.php源代码文件phps.

②url编码是一种浏览器用来打包表单输入的格式。
 浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符, 将数据排行等等)作为URL的一部分或者分离地发给服务器。不管哪种情况, 在服务器端的表单输入格式样子象这样: theName=Ichabod+Crane&gender=male&status=missing&headless=yes
URL编码遵循下列规则:
 每对name/value由&符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =, &, 和 % 这些特殊的字符。
 其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是\。那么汉字的url编码呢?很简单,看例子:“胡”的ascii码是-17670,十六进制是BAFA,url编码是“%BA%FA”。
 URL编码平时我们是用不到的,因为IE会自动将你输入到地址栏的非数字字母转换为url编码。所以对于浏览器来说http://%77%77%77%2e%6a%61%76%61%77%65%62%2e%63%63与http://www.javaweb.cc效果是一样的。
具体可以查看URL编码表

解题
1.打开浏览器,访问http://111.198.29.45:45191/index.phps 得到主页源代码,如图所示。
在这里插入图片描述
2.进行代码审计,可看出需要用GET方式给id参数传递一个为“admin”的值,但是会经过一次urldecode(),会将传入的值进行url解码,所以要对admin进行两次url编码。

3.对admin字符串进行第一次url编码得到%61%64%6d%69%6e

4.将%61%64%6d%69%6e再次进行url编码得到%2561%2564%256d%2569%256e

5.访问http://111.198.29.45:45191/index.php?id=%2561%2564%256d%2569%256e 得到flag,如图所示。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/King0237/article/details/113486673