【BUGKUCTF】web部分wp(更新中)

网站被黑
这题确实没有啥技术含量,就是两个工具的使用吧简单但是常用
根据题目可知,肯定是被挂马了
第一步,先用御剑扫一下有啥隐藏文件
在域名后加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:

你是这白开水一样淡的日子里偷偷加的一颗糖~~
原文地址:https://www.cnblogs.com/0nc3/p/12063480.html