pikachu靶场通关
暴力破解
1.基于表单的暴力破解
burp跑一下
2.验证码绕过(on server)
修改密码发了两次包都发现没有提示验证码错误,那我们可以重复利用这个验证码。
跑出来了
3.验证码绕过(on client)
根据题目提示是前端验证码
那我们发包同样可以绕过
成功
4.token防爆破?
通过观察我们可以发现下一次的token是由这一次的返回包来决定的,
选这个
线程设置为1
设置一下获取的token
选择总是
选择递归搜索,把上一个token填进去
发现密码
xss跨站脚本漏洞
1.反射型xss(get)
因为在输入框有输入限制,我们就直接在url中添加参数
2.反射性xss(post)
先用123456的账号密码登录上去
然后就可以了
当然我们也有很多的绕过方式
<sCRIPT>alert('1')</script>
<sCRIPT>alert(/xss/)</script>
用//
代替""
都可以
3.存储型xss
还是用上面的payload<sCRIPT>alert(/xss/)</script>
4.DOM型xss
通过审查元素我们可以发现我们在点击按钮之后,这个标签里面的属性就会改变我们要做的就是把它弄成超链接,
onclick 事件会在对象被点击时发生,然后弹出我们的xss,记得闭合我们的标签符号
'onclick="alert(123)">
5.DOM型xss
可以看到上面的标签在点击下面的标签之后内容就会变成输入框里面的内容,我们还是用onclick事件。
'onclick="alert(123)">
6.xss盲打
先把payload注入进去
登录进去看看
存在漏洞
7.xss之过滤
看题目就知道有过滤,我们直接使用上面提到的绕过的payload
拼凑:<scri<script>pt>alert(/xss/)</scr</script>pt>
<sCRIPT>alert(/xss/)</scriPt>
8.xss之htmlspecialchars
由于输入的地方出现了特殊字符,所以被记录下来了,但是发现记录的标签也可以进行注入,那我们继续使用onclick事件
'onclick='alert(/xss/)'
9.xss之href输出
用oncilck事件没有成功
我们还是按常理输出,然后点击查看查看元素发现,这次的输出是在href中,但是这次代码将双引号进行了过滤,是不是这样不能执行xss代码了呢,当然不是,输出在a标签里的href属性,可以使用js协议来执行js
javascript:alert(/xss/)
10.xss之js输出
可以看到直接被拼接进了代码中,那我们直接对他进行闭合
'</script><script>alert(/xss/)</script>
CSRF(跨站请求伪造)
Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为”one click”攻击。 很多人搞不清楚CSRF的概念,甚至有时候会将其和XSS混淆,更有甚者会将其和越权问题混为一谈,这都是对原理没搞清楚导致的。
1.CSRF(get)
发现请求是这样的,我们可以伪造这样的请求,登录lili的账号之后让lili点这个链接,然后就会发现lili的个人信息被修改了
2.CSRF(post)
第二关post也一样,我们伪造一个就好了。
他的信息是在post里面的,那我们伪造一个包。
但是我不知道怎么发出去,看了下答案,需要伪造一个站点,别人点你站点中的按钮的时候,就可以自动向那个网站发一个修改个人信息的请求。
1 | <html> |
token
如果有token的话看网上说的就无法绕过了。
sql注入
又到了我最喜欢的sql注入时间
1.数字型注入
直接在hackbar里面用or 1=1
成功
2.字符型注入
kobe' or "1" = "1"#
成功
3.搜索型注入
kobe' or "1" = "1"#
4.xx型注入
上面的payload被过滤了,但是依然报错,开始尝试绕过。
')or 1=1 #
成功绕过
5.insert/update
首先了解下updatexml()函数
1 | UPDATEXML (XML_document, XPath_string, new_value); |
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值
而我们的注入语句为:updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出。
xxx' or updatexml(1,concat(0x7e,database()),0) or '
6.delete注入
打开burpsuite然后点击删除,抓到包后发送到重发器然后在56后面加上我们的语句
+or+updatexml(1,comcat(0x7e,database()),0)因为这里传的是数值型,我们就不用单引号闭合,直接or就行了,这样就完成了我们的注入
7.http头注入
我们的信息被记录了,那有可能是记录在数据库了
可能又是insert
在user-agent完整注入
8.基于boolian的盲注
kobe’ and ascii(substr(database(),1,1))=112#
9.时间盲注
时间盲注主要使用if语句,通过延迟信息进行判断,不看回显信息
右击审查元素
然后点击网络,再从上面提交上去,可以看到时间执行了5.12秒,说明有盲注
kobe’ and if ((substr(database(),1,1))=’a’,sleep=(5),null)#
构造了另一条代码
此时1ms就返回结果,说明数据库名第一位不是a
将a改为p,则一直不返回结果
说明数据库名第一位不是a
RCE
RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。
1.ping
命令执行
经常遇到,但是由于我们是windows系统,我们要用whoami命令
最下面可以看到结果
2.exec “eval”
eval把字符串当做代码来执行。
文件包含
文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。
1.本地包含
先在本地建立一个敏感文件
file传参的时候包含这个文件
2.远程包含
http://192.168.32.104/pikachu/vul/fileinclude/fi_remote.php?filename=http://192.168.32.104/pikachu\vul\fileinclude/test.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
不安全的文件下载
文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
下载抓包发现文件,我们把我们的敏感文件下载下来
文件上传漏洞
这个也简单
1.客户端check
看标题就知道是js嘛
先用jpg上传,然后在burp包里修改文件的后缀名,就可以绕过前端检测
获得shell
2.服务端check,MIME
可以用一句话木马图片绕过,当然也可以直接修改mime
上传成功
3.getimagesize()
getimagesize()简介
这个函数功能会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求的
直接上传一个图片,然后在里面注入我们的恶意代码
然后用之前的包含漏洞包含我们的图片就可以了
越权
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。
一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
1.水平越权
得知这些账号
把lucy的包伪造成lili的
成功水平越权
2.垂直越权
我们的目标就是用pikachu使用root的功能
先登录admin获取一个创建用户的包
然后需要把我们普通用户的cookie替换上去,这样在登录普通用户的情况下就可以实现垂直越权
可以看到用户被添加进去了
目录遍历漏洞
目录遍历,可以读取目录中的任意文件。
敏感信息泄露
源代码中有测试账号可以看到。
直接就登录进去了,我还用dirsearch扫了半天。。
反序列化
(๑╹◡╹)ノ”ez啦~
我们先来一个正常的试一下。
报错了。
好的不会了,序列化一生之敌!!!!!!!!!!!
(38条消息) pikachu靶场 :十二、PHP反序列化_CNwanku的博客-CSDN博客_pikachu 反序列化
xxe
XXE -“xml external entity injection”
既”xml外部实体注入漏洞”。
概括一下就是”攻击者通过向服务器注入指定的xml实体内容,从而让服务器按照指定的配置进行执行,导致问题”
也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致xml外部实体注入。
具体的关于xml实体的介绍,网络上有很多,自己动手先查一下。
现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就直接避免了这个漏洞。
以PHP为例,在PHP里面解析xml用的是libxml,其在≥2.9.0的版本中,默认是禁止解析xml外部实体内容的。
本章提供的案例中,为了模拟漏洞,通过手动指定LIBXML_NOENT选项开启了xml外部实体解析。
xxe我也不是很会,过几天学一学
<?xml version = "1.0"?> <!DOCTYPE note [ <!ENTITY hacker "xxe"> ]> <name>&hacker;</name>
这个是payload
url重定向
感觉和远程文件包含差不多
ssrf
curl
发现后面跟了个url参数
伪造一个url
file_get_content
又有参数
额
搜了下正确的用法是用伪协议读取文件
192.168.32.104/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=http://127.0.0.1/phpinfo.php
base读取成功