web1:打开题目如下显示
打开链接网页显示如下,并且发现不能查看源代码,所以按Ctrl+Shift+i检查
在源代码中找到了flag
web2:打开题目如下显示
打开链接发现是一个网页计算器,不过限制了输入长度,所以打开开发者工具,修改限制。输入正确结果就得到flag了
web3:打开题目显示如下
通过标题猜测应该跟get方式有关,打开链接网页如下
这段php代码的意思是:构造what参数,并输出what参数的值,如果what参数的值是flag就输出flag的内容
web4:打开题目显示如下
通过标题猜测应该跟post方式有关。打开链接如下
这段PHP代码的意思是:构造what参数并通过post方法传到服务器,如果what参数的值是flag就打印出flag的内容
这里用了火狐浏览器的hackbar插件
web5:打开题目如下
打开链接,网页有如下PHP代码
代码意思是:通过get方式得到num参数的值,如果num不是数字或数字字符串,且num的值等于1,则输出flag。这里就是矛盾的地方。这里涉及了PHP的一个小漏洞。那就是==运算符只是检测左右两边的值是否相等。例如1w121 == 1中,1w121会被强制转换成整型1,则两者相等。
web6:打开题目显示如下
打开链接弹出两个对话框
检查源码发现最后面有一串奇怪的字符串
以&#形式编码的是Unicode编码,&#后面的是ascll码,所以解码可以得到flag
web7:打开题目显示如下
按照题目意思,需要将flag.bugku.com解析到120.24.86.145。在windows下,修改host文件,在host文件中加入此句 :
120.24.86.145 flag.bugku.com
访问http://flag.bugku.com/即可得到flag。
一般情况下host文件地址为:C:\Windows\System32\drivers\etc\hosts
访问flag.bugku.com得到flag
web8:打开题目显示如下
打开链接发现网页一直在闪烁,检查代码也一直不同。猜想是否寻找的flag就存在于某一页面之中,于是采用burp suite 中的repeater功能逐步查看,得到flag
web9:打开题目显示如下
打开链接有PHP代码如下
代码解析:
flag在变量中,我们看到$$ $$ 我们知道容易引发变量覆盖
还有一段正则表达式 /^\w+$/
正则表达式:
^:匹配输入字符串的开始位置
\w:匹配字母、数字、下划线,等价于 '[A-Za-z0-9_]
+:代表至少一个
$:匹配输入字符串的结束位置
[a-z0-9A-Z] 以外的都不行
我们 get传入args
我们让args=GLOBALS 全局数组变量 关于这个变量可以百度
$args=GLOBALS 又和var_dump($$args) 前面那个$ 组成$GLOBALS
flag变量又在$GLOBALS中,var_dump eval 成功得到flag
var_dump()函数 显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
web10:打开题目显示如下
打开网页显示如下
检查源代码发现一大堆奇怪的字符串
结合题目标题搜索得知了JSFuck 可以让你只用 6 个字符[ ]( ) ! +
来编写 JavaScript 程序。而jother是一种运用于javascript语言中利用少量字符构造精简的匿名函数方法对于字符串进行的编码方式。其中8个少量字符包括:! + ( ) [ ] { }
。只用这些字符就能完成对任意字符串的编码。jother直接在浏览器(IE可以)的控制台里输入密文即可执行解密。
所以得知这里是JSFUCK加密。直接复制到console里面执行得到内容
在表单里提交该内容发现错误
再结合题目说的字母大写,尝试再次提交,结果正确