web安全之CTF之旅(二)

这几天做了一次正式赛. web题有10道左右,A了5题. 觉得已经很不容易了.剩下的题目也都有思路.但是因为没接触过具体的题型,所以正式比赛的时候没有做出,觉得还有很多地方可以提高.

这次实战比赛的过程到时候专门会写一个EIS的心得. 简单说有三

  • AWVS跟Burpsuite非常强大.一定要熟练使用
  • sql注入一定要会手写payload,不然基本没有可以直接裸sqlmap的.
  • PHP的各种常见漏洞绕过一定要熟悉.各种屏蔽与反屏蔽考得很多

0x00. 基础题

  1. 链接 ,这题比较好的诠释了为什么php的’ == ‘与 ‘ === ‘ 有这么多的漏洞问题. 而且这种类似的题很多.多是各种方法截断或者绕过.思路需要熟悉. 常见绕过原理需要熟悉
1
2
3
4
5
6
7
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
  1. 链接 这题思路直接禁js,得到图片的时候得到flag,但是这题让我很费解的是. 为什么这题不用bs去抓就拿不到flag,我禁了js之后flag并不刷新. 难道说flag这里也用js藏的? 待确定

0x01. SQL注入测试

这题上来没有给参数,但是直接给了提示,sqlmap裸扫id 与 key都失败. 再次提示多手注…深觉还是要单独把payload的脚本自己写一下再来做题.不然那sql注入基本没法做.

0x02. 仔细看代码

题目 . js跟php的代码审计题是基础中的核心. 不管web难易一般都会考不少. 尽管编码排版很难受.还是要坚持.

1
2
3
4
5
6
7
8
9
10
11
12
13
var p1 = ' function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b ';
var p2 =
'
aa648cf6e87a7114f1
"==a.value)return!0;
alert("Error");
a.focus();
return!1}
}
document.getElementById("levelQuest").onsubmit=checkSubmit;
';
eval(unescape(p1)
unescape('54aa2'+p2));