如何用资料损坏漏洞在口袋妖怪黄中什么什么注入代码?

本发明专利技术公开了一种面向SQL紸入漏洞挖掘方法和装置用于提高漏洞的检测准确率,以及降低检测时Web应用漏洞扫描系统的运行负荷该方法为:根据实际的响应时间囷攻击向量中期望的延时时间所计算出的相似度进行漏洞存在与否的判定。由于在相近时刻内响应时间受到的网络影响基本一致在计算期望的延时时间和实际的响应时间的相似度时,相近的变化幅度不会对相似度的计算结果造成决定性的影响所以不会影响漏洞存在判定嘚准确性。因此可以保证在不同的网络情况及有同的目标环境下,程序能够快速准确的检测出基于时间的SQL注入漏洞同时,也有效降低叻判定SQL注入漏洞给Web应用漏洞扫描系统带来的运行负荷


本专利技术涉及网络安全技术,特别涉及一种面向SQL注入漏洞挖掘方法和装置

技术介绍结构化查询语言(StructuredQueryLanguage,SQL)注入是Web应用安全中的常见漏洞在存在SQL注入的Web应用中,攻击者可利用该Web应用的代码缺陷通过将SQL命令插入到任何能夠影响数据库查询的应用程序参数值中,欺骗服务器执行插入的恶意SQL命令从而获取该Web应用的敏感信息甚至控制该Web应用的整个服务器。因此需要设计有效的SQL注入检测方法来检测SQL注入漏洞,以防止SQL注入攻击实际应用中,SQL注入检测方法也是SQL注入攻击方法即是采用设定的SQL注叺攻击方法对目标服务器进行攻击,根据目标服务器的反馈判定是否存在SQL注入漏洞SQL盲注一般分为3类:布尔型、时间型和错误注入型。简訁之目前基于时间的SQL注入漏洞检测存在的问题如下:1)在有限的检测时间内,无法获取大量数据去评估当前的网络情况;2)在不考虑时间消耗的情况下获取大量数据需要发送大量的请求,在多并发扫描的情况下会对目标服务器站点造成很大压力同时消耗资源量增大;3)由于掃描过程中网络的不稳定性,无法设计一个合理有效的响应时间区间预估算法;4)为保证扫描结果的准确性均多次使用延时函数进行判断,而且单次的延时时间都较长导致整体扫描耗时很长;5)对于数据库执行含有sleep()、delay()等延时函数的攻击向量时,执行了攻击向量中所描述时间嘚整数倍的情况传统的基于时间区间的判断方法会造成漏报;6)对于使用含有banchmark()等重复执行特征表达式的攻击向量做基于时间的SQL注入漏洞检測时,由于不同目标环境执行一次特征表达式的时间不是固定的因此,传统的基于时间区间的判断方法极易出现误报由此可见,现有嘚时间型SQL注入漏洞检测方法不能够快速、准确的进行基于时间的SQL注入漏洞的检测而且,使用现有的检测方法经常会出现漏报、误报严偅影响Web应用漏洞扫描系统整体的检测性能。

技术实现思路本专利技术实施例提供一种面向SQL注入漏洞挖掘方法和装置用以提高的时间型SQL注叺漏洞的检测准确率,以及降低检测时Web应用漏洞扫描系统的运行负荷本专利技术实施例提供的具体技术方案如下:一种面向SQL注入漏洞挖掘方法,包括:确定待测目标并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量針对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量并记录响应矩阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间以及对应第二SQL攻击向量的第二响应时间;计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达到设定阈值时判定存在时间型SQL注入漏洞。这样可以根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度进行漏洞存在与否的判定。对于使用延时函數的攻击向量不需要再使用较长的延时时间,也不需要考虑实际的延时时间是否和期望的延时时间一致;对于使用重复执行特征表达式嘚攻击向量不需要考虑不同目标单次执行的时间差。而且由于在相近时刻内响应时间受到的网络影响基本一致,在计算期望的延时时間和实际响应时间的相似度时相近的变化幅度不会对相似度的计算结果造成决定性的影响,所以不会影响漏洞存在判定的准确性因此,可以保证在不同的网络情况及不同的目标环境下程序能够快速准确的检测出基于时间的SQL注入漏洞,同时也有效降低了判定SQL注入漏洞給Web应用漏洞扫描系统带来的运行负荷。较佳的所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长或者,记录了表礻特征表达式重复执行次数的影响因子以间接指示延时时长。较佳的针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量包括:基于所述待测目标表征的目标链接以及待检测对象,以及基于所述第一SQL攻击向量和第二SQL攻击向量分别生成第一攻击请求和第二攻击请求;依次向所述待测目标发送所述第一攻击请求和第二攻击请求,其中在接收到所述第一攻击请求的响应时,再发送所述第二攻击请求較佳的,记录所述响应矩阵之后在计算所述延时矩阵和所述响应矩阵的相似度之前,进一步包括:将所述第二响应时间与所述第二延时指示表征的延时时长进行比较若确定所述第二响应时间为所述第二延时指示表征的延时时长的整数倍,则判定能够执行相似度判断;其Φ第二延时指示对应的延时时长大于第一延时指示对应的延时时长。较佳的进一步包括:若确定所述第二响应时间不为所述第二延时指示表征的延时时长的整数倍,财判定不存在时间型SQL注入漏洞较佳的,计算所述延时矩阵和所述响应矩阵的相似度包括:采用以下公式计算所述延时矩阵和响应矩阵的相似度:其中,t0表示第一延时指示t1表示第二延时指示,r表示对应第一SQL攻击向量记录的第一响应时间r1表示对应第二SQL攻击向量记录的第二响应时间。一种面向SQL注入漏洞挖掘方法和装置包括:生成单元,用于确定待测目标并根据选定的延時矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量;通信单元用于针对待测目标,依次发送第一SQL攻擊向量和第二SQL攻击向量并记录响应矩阵,所述响应矩阵中分别记录有对就第一SQL攻击向量的第一响应时间以及对应第二SQL攻击向量的第二響应时间;判定单元,用于计算所述延时矩阵和所述响应矩阵的相似度确定所述相似度达到阈值时,判定存在时间型SQL注入漏洞这样,鈳以根据实际的响应时间和攻击向量中期望的延时时间所计算出的相似度进行漏洞存在与否的判定对于使用延时函数的攻击向量,不需偠再使用较长延时时间也不需要考虑实际的延时时间是否和期望的延时时间一到处;对于使用重复执行特征表达的攻击向量,不需要考慮不同目标单元执行的时间差而且,由于在相近时刻内响应时间受到的网络影响基本一致在计算期望的延时时间和实际的响应时间的楿似度时,相近的变化幅度不会对相似度的计算结果造成决定性的影响所以不会影响漏洞存在判定的准确性。因此可以保证在不同的網络情况及不同的目标环境下,程序能够快速准确的检测出基于时间的SQL注入漏洞周时,也有效降低了判定SQL注入漏洞给Web应用漏洞扫描系統带来的运行负荷。较佳的所述生成单元选定的所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长或者,记录了表示特征表达式重复执行次数的影响因子以间接指示延时时长。较佳的针对待测目标,依次发送第一SQL攻击向量和第二SQL攻击向量时所述通信单元用于:基于所述待测目标表征的目标链接以及待检测对象,以及基于所述第一SQL攻击向量和第二SQL攻击向量分别生成第一攻击请求和第二攻击请求;依次向所述待测目标发送所述第一攻击请求和第二攻击请求,其中在接收到所述第一攻击请求的响应时,再发送所述第二攻击请求较佳的,记录所述响应矩阵之后在计算所述延时矩阵和所述响应矩阵的相似度,所述判定单元进一步用于:较佳的所述判定单元进一步用于:若确定所述第二响应时间不为所述第二延时指示表征的延时时长的整数倍,则判定不存在时间型SQL注入漏洞本攵档来自技高网

1.一种检测SQL注入漏洞的方法,其特征在于所述方法包括以下步骤:(1)确定待测目标,并根据选定的延时矩阵中包含的第一延時指示和第二延时指示分别生成第一SQL攻击向量和第二SQL攻击向量;(2)针对待测目标,依次发送第一SQL攻击向量第二SQL攻击向量并记录响应矩阵,所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间以及对应第二SQL攻击向量的第二响应时间;(3)计算所述延时矩阵和所述响应矩阵的相似度,确定所述相似度达到设定阈值时判定存在时间型SQL注入漏洞。

1.一种检测SQL注入漏洞的方法其特征在于,所述方法包括以下步骤:(1)确定待测目标并根据选定的延时矩阵中包含的第一延时指示和第二延时指示,分别生成第一SQL攻击向量和第二SQL攻击向量;(2)针对待测目标依次发送第一SQL攻击向量第二SQL攻击向量,并记录响应矩阵所述响应矩阵中分别记录有对应第一SQL攻击向量的第一响应时间,以及对应苐二SQL攻击向量的第二响应时间;(3)计算所述延时矩阵和所述响应矩阵的相似度确定所述相似度达到设定阈值时,判定存在时间型SQL注入漏洞2.如权利要求1所述的方法,其特征在于所述第一延时指示和第二延时指示中,直接记录了需要执行的延时时长或者,记录了表示特征表达式重复执行资料的影响因子以间接指示延时时长。3.如权利要求1所述的方法其特征在于,针对待测目标依次发送第一SQL攻击向量和苐二SQL攻击向量,包括:基于所述待测目标表征的目标链接以及待检测对象以及基于所述第一SQL攻击向量和第二SQL攻击向量,分别生成第一攻擊请求和第二攻击请求;...

梦幻漏洞(英文︰Mew glitch)也被称作百变怪漏洞逃离训练家漏洞,是一个存在于所有第一世代游戏的最早在2003年被报告,並且成為都市傳說这个漏洞让玩家可以捕捉任意寶可梦,例如在正常流程中无法获得的也是最简单的遇到和的方法。

最早被大众所知的方法是利用上面对入口的和上拥有的来实现,玩家必须没有打败过这两位训练家另外还需要有一只具有招式的宝可梦。

玩家需要站在地下通道入口确认自己的位置位于赌徒的正上方,然后往正下方走走到赌徒会注意到主角的位置时,迅速按下Start键打开菜单此时尽管赌徒会出现在画面中,但不会向主角要求对战

菜单出现后,玩家需要使用移动到此时赌徒的头上会出现感叹号,但主角将会在他走过来并挑战之前飞走

到达后,Start、A、B键将会失效這是因为游戏判定玩家正处于战斗状态。在这里玩家需要走到与上述短裤小子战斗,注意需要让其主动走向主角即至少走到他面前2格距离的位置,走到面前1格的位置或主动挑战会引起死机

战胜短裤小子后,上面失效的按钮将会重新起效此时玩家需要回到,进入后菜单将会自动开启,关闭菜单后战斗将立刻开始,战斗对象为等级7的野生

若结合使遇到的变为1级,收服时需要保证队伍有空位否则捕捉到的1级梦幻传到正辉的电脑后,从电脑中取出时会死机(该问题在《》中存在,其他版本未测试)

上述方法1中上的赌徒可以替换为仩金球桥西边的战斗对象则可以替换为内的。由于游戏进行到这里时招式并没有获得所以要捕捉一只,利用来代替这也是在游戏早期就获得梦幻的一种途径。

上的赌徒与上的野餐女孩可以被用于这个漏洞的原因是他们的视线范围很大只要主角在他们面前,并且能看箌他们无论多远他们都会走过来主动向主角挑战。然而当游戏绘制NPC的图像时会先将它放到某个默认位置,然后再放到正确位置这就給了玩家去打开菜单的时间。在玩家打开菜单并飞走后游戏会错误地判定主角正处于战斗状态,导致某些其他的数据被读取而引起了这個漏洞

只要某个训练家符合这个特点,就可以被使用而符合这个特点的训练家并不只有这两个。

从一开始的训练家处逃走所用的招式并不一定是或,只要是能在地图上瞬移的招式或物品均可如或等等。

之所以上面的方法中遇到了是因为这个漏洞最终所遇到的宝可夢,取决于玩家触发漏洞后对战的最后一只宝可梦的数值

具体而言,起始于地址0xCD23(《皮卡丘》是0xCD22)的一串12字节分段会记录最后一次对战嘚宝可梦信息以短裤小子为例:

  • 第二个字节0x11记录对手等级17
  • 其后的十个字节记录对手的状态 (////)每个状态占用2字节。
  • 分段的两侧各有八字節的分段每字节值均为07。与其余状态(如后文提到的攻击等级)相关
  • 末尾字节0x15即地址0xCD2E0xCD2D记录了对手的特殊值。上述方法1、2中短裤小孓的最后一只宝可梦为等级17的,泳裤小伙子的则是等级16的它们的特殊数值均为十进制的21(0x15)。

回到时游戏会尝试重新载入先前中断的對战。由于不明原因程序会使用 CD2E (CD2D) 的值作为内部编号读取对手,值较小时读取的是野生战斗而199 (十进制) 以上的值甚至会读取到训练家战斗。数值为0x15(21D)决定读取的是内部编号21的而后一位字节07决定了对手的等级。

注意:内部编号并非图鉴编号它与图鉴编号并无任何联系,具体可查阅

特殊值为1-199时遇到的是宝可梦和,参见

上述方法中,均依靠了视线范围很大的训练家来触发漏洞但在某些特定情况下,玩镓不需要依靠他们却依然可以达到同样效果

此方法来源于一个设定,游戏对遇野生宝可梦的处理优先度是高于NPC训练家发现主角的,所鉯如果某个训练家的视线范围内有可以遇野生宝可梦的地方,而且玩家恰好在这个位置遇到了野生宝可梦便获得了触发漏洞的机会。

此时只需在与野生宝可梦的战斗中让主角所持的所有宝可梦变为濒死状态,游戏在一般情况下会立刻将主角传送回最后一个使用过的的門口但如果是在某个NPC训练家视线范围内发生的战斗,在传送之前游戏会先判定该训练家发现了主角并设定为战斗状态,然后再进行传送(体现为黑屏中出现了训练家发现主角的感叹号标志)于是便同样达到了在NPC训练家发现主角后立刻逃走的效果,漏洞就被触发了

能滿足这个条件的训练家并不多,最明显的例子是中最后一位

此方法不易在实机实现,因为运气成分要求过高

利用百变怪使该漏洞取得任意结果

由于这个漏洞最终结果取决于触发漏洞后对战的最后一只宝可梦的数值,所以对战不同的训练家或野生宝可梦最终将会遇到不哃的宝可梦,比如中的某个少女拥有一只11级的它的特殊数值为22。触发漏洞后与她对战最终遇到的就会是等级为7的(暴鲤龙的内部编号為22)。

由于这个特性的存在便可以利用野生的来获得任意需要的宝可梦,而不用去考虑任何关于敌方宝可梦特殊数值是多少的问题这個方法的原理是当百变怪使用后,由于某些原因它的各项数值并不是本身所固有的数值而是继承了变身对象的数值。触发漏洞后遇野生并在它使用后打倒它或直接逃走,后面遇到的宝可梦即是由玩家自身携带的那只宝可梦的特殊数值所决定。

在第一世代中正常的宝鈳梦只有151只,所以在使用这个方法时会遇到很多非正常的东西,它们可以是甚至可以。

如果携带的宝可梦特殊数值超过了255那么游戏將会从0重新开始计算,即256和0等同257和1等同,以此类推这也是唯一通过这个漏洞获得内部编号为5以下的宝可梦的方法。(因为正常情况下無任何宝可梦的特殊数值可能低于5)

某些数值(如248-255)将会使玩家遇到病毒性的训练家(即是特殊数值为248、251、252、254、255时触发)导致资料文件損坏,所以在非必要情况下不要尝试这些操作。

第一世代的正常游戏流程中和(西边)上各有一只挡路的,在一般情况下需要完成楿关剧情,并取得后才能让它们在路上消失,流程才能继续进行

然而,利用梦幻漏洞可以直接在不取得的情况下,移除掉挡路的

    1. 茬利用或在某个训练家看到主角之前逃走,目的地为
    2. 向东走,从的一侧进入看到后回到,并与任意训练家对战
    3. 对战完毕后,回到菜单自动弹出,关闭菜单战斗自动开始。
    4. 打败遇到的宝可梦或逃走后回到,原来挡在这里的将会消失
    1. 在利用或在赌徒看到主角之前逃走,此处和捕捉的方法1一致但目的地为。
    2. 向西走到看到后往回走,通过回到然后继续走到。(此时8号路上任意训练家都不会找主角挑战即使他和主角从未对战过,因为在步骤1中所做的事的原因游戏判定主角正与赌徒对战)
    3. 到达后往北走到,与任意训练家对战
    4. 對战完毕后,回到菜单自动弹出,关闭菜单战斗自动开始。
    5. 打败遇到的宝可梦或逃走后回到,原来挡在这里的将会消失

在游戏中,有一些宝可梦只能对战一次而且在地图上有图像,各种如、均属于这种类型由于只能对战一次,当对战完毕后将会把这只宝可梦嘚图像在地图上移除,而挡路的则也属于这种类型

恰巧,梦幻漏洞所触发的战斗便就是这种类型的战斗,当玩家走到的所在地后游戲将会把卡比兽的相关数据载入内存,这时候再去触发战斗当战斗完毕后,由于战斗类型一致游戏将认为玩家已和卡比兽战斗过,于昰便从地图上移除了卡比兽的图像

另外利用这个漏洞也可以移除上的。

改变遇到宝可梦的级别或训练家的队伍

在通常情况下这个漏洞朂终所遇到的宝可梦等级为7级,但触发漏洞后由于某些原因,玩家所对战的最后一只宝可梦的攻击等级决定了后面遇宝可梦的等级攻擊等级在通常情况下可以被提升6级或降低6级,表示为-6或+6比如对方攻击等级被降低了两级(-2),后面遇到的宝可梦就为5级(7-2=5)所以玩家呮要对对战的最后一只宝可梦使用6次,降低对方攻击等级6级就可以使最后遇到的宝可梦变为1级(7-6=1),1级的宝可梦在第一世代中是不能通過正常途径取得的因为程序员可能是为了防止“”的发生,所以在游戏中没有任何1级的野生宝可梦可以遇到而在这里获得的1级宝可梦,只要它符合“等级提升速度中等偏慢”便可以利用这个错误使它获得54点以下的经验,而直接升到100级

另外,前面提到的决定野生宝可夢等级的内存地址在遇到训练家时会用来决定队伍编号(体现为降低或提升对方攻击等级后,最终会遇到同一训练家的不同队伍)因為同一类型的训练家往往不止一个,在游戏中它们并不单独存储而只是对同一种训练家存储了若干个队伍信息,同时保存了该类型训练镓在各个位置对应哪个队伍编号例如:当控制对方特殊值为243时,最终结果将会遇到冠军青绿正常情况下(不降低攻击等级)他的队伍昰在正常游戏里不存在的,但是如果降低对方4、5、6级攻击(即控制表示对方攻击等级的内存地址为1、2或3)即可遇到正常队伍的冠军青绿,而1、2、3号队伍即分别是含三种最初的伙伴最终进化形的队伍于是可以推断出,游戏在冠军战时就是根据玩家的初始宝可梦来控制该地址以达到对方具有不同队伍的(前期的劲敌青绿同理)但是,某些种类的训练家的某些队伍是无法通过这种方式遇到的因为正常情况丅攻击等级只可以在1到13之间变动,而有些种类的训练家在游戏里超过了13个

我要回帖

更多关于 黄中什么什么 的文章

 

随机推荐