Get/Post
知识简要
URL符号
?:(1) 使用?来连接参数,连接域名和参数。例如www.xxxxx.com/?a=1 //在PHP中GET传参需要使用?进行连接
(2) 还可以作为清理缓存使用。例如:www.xxxxx.com/index.html和www.xxxxx.com/index.html?test1这两个URL打开的页面是相同的,但是后面的这个URL不调用缓存的test1的内容,所以被认为是一个新地址被重新读取。
&:作为不同参数的间隔符。
PHP简易知识
PHP 是弱类型语言(弱类型语言的东西没有明显的类型,会随着环境的不同自动变换类型)。
echo:是一个显示参数内容的命令。
松散比较:使用两个等号 == 比较,只比较值,不比较类型。
严格比较:用三个等号 === 比较,除了比较值,也比较类型。
$what:变量what的表示方法,通常情况下采用what作为一个变量。
$_GET:用于收集方法”get"的表单中的值。在HTTP中的GET方法不适合很大的变量值,一般情况下值不能超过2000个字符。
$_POST:用于收集方法="post"的表单中的值。从带有 POST 方法的表单发送的信息,对所有人都不可见,也不会在地址栏中显示,并且对发送信息的量也没有限制。但在默认情况下,POST 方法发送的信息量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。
GET/POST
GET方法
访问URL地址
$what=$_GET['what']; //将提交的what值传给参数what echo $what; //显示参数what的内容 if($what=='flag') //如果参数what的内容为flag echo 'flag{****}'; //那么显示flag内容
得到上图的URL代码,使用GET方法进行传参,根据上图的解释说明,将flag传参给what。直接在URL栏提交参数http://123.206.87.240:8002/get/?what=flag,就可以弹出flag的内容了。
POST方法
$what=$_POST['what']; echo $what; if($what=='flag') echo 'flag{****}';
话不多说,直接看题。源码意思和上道题目差不多。POST方法就可以直接在火狐浏览器的插件管理的地方搜索New Hackbar(链接地址:https://addons.mozilla.org/zh-CN/firefox/search/?q=New%20Hackbar&platform=WINNT&appver=77.0.1)安装之后使用F9可以弹出Hackbar的界面。勾选Enable Post Data,然后在下面的栏中输入what=flag。就是通过Post的方法获得flag的内容了。
两种传参方法
用XCTF攻防世界中的一道题作为引例,直接上图。
之前使用的是直接在URL栏中添加get方法从而达到效果。同样,使用Hackbar的时候也可以直接在地址栏中直接传参。
在使用GET方法达到目的之后,我们再用Post提交b=2,从而得到我们想要的flag。
根据这些,就可以通过利用GET和POST传参得到自己想要的了。