随意填写一个账号密码,并打开BP进行抓包
start?attack进行爆破
爆破结束后,我们可以根据返回数据长度来判断正确的账号密码,返回长度不同于其他数据包的,就是正确的账号密码,此处账号:admin?密码:123456
登录
构造payload
<script>alert(6)</script>
根据提示,后台地址为http://ip/pikachu/vul/xss/xssblind/admin_login.php
查看提示,提示:这里一共有这么些用户vince/allen/kobe/grady/kevin/lucy/lili,密码全部是123456
登录
点击之后打开了修改个人信息页面,我们将手机号修改为16666666666,开启burp抓包并点击submit按钮
使用burp直接生成CSRF?Poc代码,右键请求包?→?Engagement?tools?→?Generate?CSRF?PoC
点击?Test?in?browser,复制弹出的URL链接,在浏览器中打开
关闭burp拦截,重新访问漏洞页面,由于我们刚才drop掉了请求包,所以现在的手机号与刚才是相同的没有被修改
点击burp生成的CSRF?Poc页面中的submit按钮
点击之后页面跳转至个人信息页面,并且手机号已经发生了改变,正常情况下这个CSRF?Poc的页面是攻击者生成的,然后发送给受害者进行点击,然后攻击者就可以使用受害者的合法的身份去访问网站(比如修改密码、修改个人信息等)。
bp抓包,发送到重发器
输入and?1=1时页面没有报错
输入and?1=2时页面报错
判断为数字型注入
使用order?by来判断可以显示的列
为3时错误,所以有两列
其原理是,order?by会对列继续排序,当我们输入的列数超过实际拥有的列数,就会提示该列不存在
?接下来判断每列显示的位置
查询数据库和数据库版本
id=2 union select?database(),version()
查询所有表
id=2?union?select?group_concat(table_name),2?from?information_schema.tables?where?table_schema='pikachu'
查询敏感表users表中所有列
id=2?union?select?group_concat(column_name),2?from?information_schema.columns?where?table_schema='pikachu'?and?table_name='users'
id=2?union?select?group_concat(username),group_concat(password)?from?users
闭合符为单引号
尝试构造万能密码查询所有数据
'?or?'1'='1
查所有表
1'?union?select?group_concat(table_name),2?from?information_schema.tables?where?table_schema=database()?--+&submit=查询
我们可以看到让我们输入127.0.0.1,执行ping命令
ping成功了
我们测试一下是不是有漏洞
通过管道拼接符?&&,这个拼接符是linux和Windows都可以用的
payload:?127.0.0.1?&&?whoami
whoami命令:在linux和Windows都支持,但是显示的内容不同,因此我们可以通过它来判断是否存在漏洞,以及操作系统是什么,Linux下会显示当前用户名,Windows会显示当前登录的域名以及用户名
发现执行成功
文件包含漏洞,例如php,include(),开发过程中为了方便,把常用的函数写到了其它单独的文件中,然后引入这个文件,利用里面的函数,但是有的程序可能是会在你传参的时候选择某个文件,如果对这个参数不过滤,那么就会导致文件包含漏洞的产生
比如通过某种方式上传到服务器了一个一句话木马文件,那么我就可以通过该程序的文件包含漏洞去利用那个文件,只需要输入那个文件的路径,就可以调用了
我们看一下这一题
我们一开始发现题目让我们可以选择好几个球星,我们选择以后查看url发现了个规律
我们发现这里提交的时候有个参数是文件名,而且每个选择对应一个文件名,file1~file5
那么这里就有可能存在文件包含漏洞了,
发现file1~file5都是球星
搭建本靶场使用的是Windows系统,所以本关可以利用本地文件包含漏洞包含一些Windows系统中的敏感文件,比如hosts文件,直接将URL中的filename的值修改
..\..\..\..\..\..\windows\system32\drivers\etc\hosts&submi