Loading

攻防世界题集 WEB 新手练习区全解

view_source

X老师让小宁同学查看一个网页的源代码,但小宁同学发现鼠标右键好像不管用了。

Ctrl + U,或者在网址前面加上 view-source: 就可以打开源代码了

get_post

X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?

需要同时发送 GET 和 POST 请求。直接在网址后面跟上 GET 请求参数,然后把 POST 参数作为 params 提交

robots

X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。

先访问网站根目录下的 robots.txt,得到一个 f1ag_1s_h3re.php 的路径,再打开 f1ag_1s_h3re.php 就能看到 flag 了

backup

X老师忘记删除备份文件,他派小宁同学去把备份文件找出来,一起来帮小宁同学吧!

官方 WP 用了扫目录的脚本,但是直接猜也可以,运气好一次就猜中了,是 index.php.bak

X老师告诉小宁他在cookie里放了些东西,小宁疑惑地想:‘这是夹心饼干的意思吗?

执行 document.cookie 或者看响应头都能看到 cookie ('look-here=cookie.php'),访问 cookie.php 再看响应头就可以得到 flag 了

disabled_button

X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢?

审查元素编辑 HTML,删掉按钮的 disable 属性就行了

simple_js

小宁发现了一个网页,但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} )

传入的 pass_enc 其实从头到位就没有实际用上过,所以密文和输入什么无关

URL 解码 \x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30 得到一串 ASCII 值,再按十进制转为字母就是 flag 了 (参考)

xff_referer

X老师告诉小宁其实xff和referer是可以伪造的。

用浏览器扩展或者 BurpSuite 抓包伪造请求头的 X-Forwarded-ForReferer

weak_auth

小宁写了一个登陆验证页面,随手就设了一个密码。

直接碰运气,账号 admin,密码 123456

command_execution

小宁写了个ping功能,但没有写waf,X老师告诉她这是非常危险的,你知道为什么吗。

输入 0 | ls /home 会以 ping -c 3 0 | ls /home 执行,发现有一个 /home/flag.txt,用 cat /home/flag.txt 获取 flag.txt 的内容

simple_php

小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。

<?php
	show_source(__FILE__);		//高亮显示代码
	include("config.php");		//引用config.php,
	$a=@$_GET['a'];				//传值a,发生错误时不显示
	$b=@$_GET['b'];				//传值b,发生错误时不显示
	if($a==0 and $a){			//如果a==0且a为真
    	echo $flag1;			//输出第一部分flag
	}
	if(is_numeric($b)){			//如果b为数字或数字字符串
    	exit();					//退出(即b不可以为数字或者数字字符串)
	}
	if($b>1234){				//b>1234
    	echo $flag2;			//输出第2部分flag
	}
?> 

php 是一种弱类型定义的语言,一个变量可以根据环境自动转换自己的类型,因此当变量是数字和字母的组合的时候,只会对比变量中最前面的数字。而 if 表示 "如果真",因此 if($a) 会先将真 (true) 赋值给 $a 再比较。根据 php 语法的特性,得到 a=0a&b=1235a (参考)

posted @ 2022-12-01 08:25  20206675  阅读(98)  评论(0编辑  收藏  举报