SQL注入(Structured Query Language)
OWASP 开放式web应用程序安全项目
OWASP TOP10(4年更新一次,上次更新是2017年。)
sql注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令目的的入侵行为。
注入能导致数据丢失、破坏或泄露给无授权方,缺乏可审计性或是拒绝服务。注入有时甚至能导致主机被完全接管。
注入攻击的本质就是把用户输入的数据当作代码执行。(过于信任用户)
SQL注入实质就是闭合前一句查询语句,构造恶意语句,恶意语句被代入SQL语句执行。
没有对用户的输入数据或者是页面中所携带的信息进行必要的合法性判断,导致了攻击者可以提交一段数据库查询代码,根据程序返回的结果,获得一些他想得到的数据。这样就产生了被称为数据库的注入攻击SQL注入攻击。
数据与代码未严格分离;用户提交的参数数据未做充分检查过滤即被代入到SQL命令中,改变了原有SQL命令的“语义”,且成功被数据库执行。
SQL命令可以进行查询、插入、删除等操作,直接将这些命令拼接起来。
存在万能密码,一定存在注入
存在注入,不一定存在万能密码
存在时间注入,一定也存在布尔注入
存在布尔注入,不一定存在时间注入
搜索框、输入框
参数名,参数值,cookie,目录名,文件名…
(cookie注入一般存在于asp的程序中。
参数名、目录名、文件名等注入漏洞通常存在于有网站路由的程序中。)
数据类型:数字、字符
返回结果:显错(报错)、盲注(布尔、时间)
根据客户端返回的结果来判断提交的测试语句是否成功被数据库引擎执行,如果测试语句被执行了,说明存在注入漏洞。
字符型:(假如入有一篇 id=1 的文章)
数字型:
时间盲注:
id=1’+and+sleep(5)+–+
- sqlmap -u —指定url连接
- sqlmap -r —指定get/post数据包
例子:
python sqlmap.py -u “http://127.0.0.1/fwxm_detail.asp?id=22“
python sqlmap.py -r c:\2.txt - –cookie 设置cookie
- –current-db 获取当前数据库名称
- -D “” 指定数据库名
- –tables 列出表
- -T “” 指定表名
- –columns 列出字段
- -C “” 指定字段
- –dump
- –dbs 列出所有数据库
- –users 列出数据库用户
- –password 列出数据库用户的密码
- –is-dba 查看数据库用户的权限
原文链接:https://www.cnblogs.com/bink1/p/12626818.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/17630