网站被黑
这题确实没有啥技术含量,就是两个工具的使用吧简单但是常用
根据题目可知,肯定是被挂马了
第一步,先用御剑扫一下有啥隐藏文件
在域名后加index.php页面没报错说明是php页面
在御剑里设置php,探测200
发现一个shell.php页面,点进去需要输入密码
接下来使用burpsuit的字典爆破功能,随便输入个啥,抓包
右键发送到intruder进行爆破,端口号已经设置好不用管了
点击position菜单
attack type使用默认的sniper就行
再进入payloads菜单设置字典
payload set为1
payload type为Simple list
payload options选择passwords
在左上方intruder右击选择start attack
(每个版本应该不同吧,反正我找这个开始按钮找了好久…哭唧唧)
然后就开始爆破啦,根据length不同可以找出匹配的密码
点击length会按大小排序,就可以很快发现那个与众不同的了,也可能有几个字符的长度都比较特别,可以点进去看下
右键发送到repeater,
go,在响应包里得到flag
输入密码才能查看flag
字符?正则?
拖了很久的正则没学,就把这题当正则入门题吧,题目代码如下:
<?php
highlight_file('2.php');
$key='KEY{********************************}';
$IM= preg_match("/key.*key.{4,7}key:/./(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match);
if( $IM ){
die('key is: '.$key);
}
既然是正则表达式,关键要弄懂$pattern="/key.*key.{4,7}key:/./(.*key)[a-z][[:punct:]]/i"。
- / /是定界符;
- key,直接使用,id=key
- .是元字符,表示除了换行符的任意一个字符,就取a好了,id=keya
- *是量词,表示前一个元字符a的数量0个或多个,即{0,}。取零个,id=key
- key,直接使用,id=keykey
- .取a,id=keykeya
- {4,7}是量词,表示前一个元字符a的数量为4到7,取4个,id=keykeyaaaa
- key,直接用,id=keykeyaaaakey
- :也直接用,id=keykeyaaaakey:
- /即/,防止转义,id=keykeyaaaakey:/
- .取a,id=keykeyaaaakey:/a
- /即/,id=keykeyaaaakey:/a/
- (.*key)是一个分组,.取a,星号取零个,key直接用,id=keykeyaaaakey:/a/key
- [a-z]任取一个a-z的小写字母,取a,id=keykeyaaaakey:/a/keya
- [[:punct:]]表示任取一个标点符号,取:,id=keykeyaaaakey:/a/keya
- i为模式修饰符,表示不区分大小写
所以得到payload为:
?id=keykeyaaaakey:/a/keya: