Giter Club home page Giter Club logo

pikachu's Introduction

“如果你想搞懂一个漏洞,比较好的方法是:你可以自己先制造出这个漏洞(用代码编写),然后再利用它,最后再修复它”。


# pikachu

Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。

Pikachu上的漏洞类型列表如下:

  • Burt Force(暴力破解漏洞)
  • XSS(跨站脚本漏洞)
  • CSRF(跨站请求伪造)
  • SQL-Inject(SQL注入漏洞)
  • RCE(远程命令/代码执行)
  • Files Inclusion(文件包含漏洞)
  • Unsafe file downloads(不安全的文件下载)
  • Unsafe file uploads(不安全的文件上传)
  • Over Permisson(越权漏洞)
  • ../../../(目录遍历)
  • I can see your ABC(敏感信息泄露)
  • PHP反序列化漏洞
  • XXE(XML External Entity attack)
  • 不安全的URL重定向
  • SSRF(Server-Side Request Forgery)
  • 管理工具
  • More...(找找看?..有彩蛋!)

管理工具里面提供了一个简易的xss管理后台,供你测试钓鱼和捞cookie,还可以搞键盘记录!~
后续会持续更新一些新的漏洞进来,也欢迎你提交漏洞案例给我,最新版本请关注pikachu
每类漏洞根据不同的情况又分别设计了不同的子类
同时,为了让这些漏洞变的有意思一些,在Pikachu平台上为每个漏洞都设计了一些小的场景,点击漏洞页面右上角的"提示"可以查看到帮助信息。

如何安装和使用

Pikachu使用世界上最好的语言PHP进行开发-_-
数据库使用的是mysql,因此运行Pikachu你需要提前安装好"PHP+MYSQL+中间件(如apache,nginx等)"的基础环境,建议在你的测试环境直接使用 一些集成软件来搭建这些基础环境,比如XAMPP,WAMP等,作为一个搞安全的人,这些东西对你来说应该不是什么难事。接下来:
-->把下载下来的pikachu文件夹放到web服务器根目录下;
-->根据实际情况修改inc/config.inc.php里面的数据库连接配置;
-->访问h ttp://x.x.x.x/pikachu,会有一个红色的热情提示"欢迎使用,pikachu还没有初始化,点击进行初始化安装!",点击即可完成安装。


如果阁下对Pikachu使用上有什么疑问,可以在QQ群:532078894(已满),973351978(未满) 咨询,虽然咨询了,也不一定有人回答-_-。

Docker

使用已有构建:

docker run -d -p 8765:80 8023/pikachu-expect:latest

本地构建:

如果你熟悉docker,也可以直接用docker部署
docker build -t "pikachu" .
docker run -d -p 8080:80 pikachu

切记

"少就是多,慢就是快"

WIKI

点击进入

pikachu's People

Contributors

8023 avatar anemone95 avatar zhniing avatar zhuifengshaonianhanlu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pikachu's Issues

XSS后台异常

所有功能正常(mysql初始化正常),进入XSS控制台报 数据库无法连接。
查看代码发现 pkxss/pkxss_install.php 的include 的路径是一个新的mysql配置文件。

这种不符合一次配置全局运行的理念,容易给人造成困扰。可以改为都使用一个配置文件。

XSS的htmlspecialchars绕过,双引号问题

我在写这个的时候,看到了默认只对双引号转译。但当我实际提交查看网页源码时,发现<a herf="我输入的内容",即herf变成了双引号包裹,而输入中无法正常使用“,导致此题我解不出来。去网上看了一些其他帖子,他们的herf都是单引号包裹的。我特地看了一一下php代码文件,里面的确写的是单引号包裹,我很疑问这是为什么到网页上就变成双引号了。我使用的是XAMPP,PHP7。

验证码刷新不出来,出现空白界面进来。

目前发现php7.4以后版本访问//pikachu/vul/xss/xsspost/xss_reflected_post.php输入admin/123456后会造成空白页面的问题和/pikachu/vul/burteforce/bf_server.php中验证码显示错误的问题。
原因:php7.4以后不支持大括号访问数组。
解决方案:修改/pikachu/inc/function.php中第35行中{}改为数组[],表现如下:$str .= $string{$pos} 改为 $str .= $string[$pos]

xss后台出错

Fatal error: Uncaught TypeError: mysqli_fetch_assoc(): Argument #1 ($result) must be of type mysqli_result, bool given in /www/wwwroot/pikachu.mikea.ltd/pikachu-master/pkxss/xcookie/pkxss_cookie_result.php:46 Stack trace: #0 /www/wwwroot/pikachu.mikea.ltd/pikachu-master/pkxss/xcookie/pkxss_cookie_result.php(46): mysqli_fetch_assoc() #1 {main} thrown in /www/wwwroot/pikachu.mikea.ltd/pikachu-master/pkxss/xcookie/pkxss_cookie_result.php on line 46

mac系统 php 8.1.6 需要使用PDO连接数据库

MAC系统中,个人使用的最新版xampp,php版本为8.1.6,mysqli_connect函数可以连接正确的数据库,但是一旦尝试连接错误的数据库,不会返回错误信息,网页直接显示500

数据库莫名奇妙返回空值

image

有些靶场能正常使用。有些靶场打不开,打不开的靶场全是这个报错

Warning: mysqli_set_charset() expects parameter 1 to be mysqli, null given in C:\phpstudy_pro\WWW\pikachu\inc\mysql.inc.php on line 10

这个报错对应的地址的文件第十行的代码(我的PHP版本是5.4)

image

求解答谢谢

@zhuifengshaonianhanlu

xss_dom_x.php+号被解码成空格 导致加号无法使用

源码
function domxss(){
var str = window.location.search;
var txss = decodeURIComponent(str.split("text=")[1]);
var xss = txss.replace(/+/g,' ');
// alert(xss);

                    document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";
                }

Bug:
当前decodeURIComponent和replace的实现顺序会将“+”和“%2B”都解码为空格

decodeURIComponent("x%2By+z").replace(/+/g, ' ')
< "x y z"

decodeURIComponent("x%2By+z".replace(/+/g, ' '))
< "x+y z"

bug: 非默认3306端口数据库连接失败

/inc/config.inc.php配置数据库host,user,password,dbname,dbport;
image
/install.php 初始化19行,23行均未读取对应dbport进行连接,导致初始化失败;
image
patch:
11行后添加$dbport=DBPORT;
19行修改为if(!@mysqli_connect($dbhost, $dbuser, $dbpw, "", $dbport)){
22行修改为$link=mysqli_connect(DBHOST, DBUSER, DBPW, "", DBPORT);

/index.php 14行同理未读取对应dbport进行连接,导致数据库读取失败;
image
patch:
14行修改为mysqli_connect(DBHOST,DBUSER,DBPW,DBNAME,DBPORT);

求助数据库连接失败

我用的是压缩包版本的不是docker版本,解压后放到网站根目录下了
在本地连接得上
image
两个config.inc.php都改过来了
image
也分别试过了,1. 不创建两个数据库pikachu和pkxss 2. 提前创建pikachu和pkxss数据库 都会连接失败
image
还有一个线索,我第一次进的时候没有提示我进行初始化

install.php可以被利用来恶意重装靶场

不知道这算不算漏洞。。。刚入门。index.php中通过检验数据库是否可以连上数据库来判断是否配置完成。但是却可以直接访问install.php来直接覆盖掉原来数据库中的数据。我觉得应该在配置文件中设置一个$installed变量来控制已经安装,然后install.php读取这个变量来判断是否需要安装。

sql注入部分报错

在sql注入部分点击查询会产生报错,报错如下:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'member where id=1' at line 1
我的mysql的版本是8.0是否与这个有关?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.