|  | 
 
| 0x00 Stored XSS漏洞: 漏洞文件message.php
 <?php
 include_once ''header.php'';
 
 if(isset($_POST[''name''])){
 if(empty($_POST[''name''])){
 exit ("<script>alert(''称呼为空!''); window.history.go(-1);</script>");
 }elseif(empty($_POST[''content''])){
 exit ("<script>alert(''内容不能为空!'');window.history.go(-1);</script>");
 }else{
 $record = array(
 ''title'' =>$_POST [''title''], //title
 ''name'' =>$_POST [''name''],//没过滤
 //''sex'' =>$_POST [''sex''],//没过滤
 //''qq'' =>$_POST [''qq''],
 //''phone'' =>$_POST [''phone''],
 //''email'' =>$_POST [''email''],
 //''address'' =>$_POST [''address''],
 ''content'' =>$_POST [''content''],
 ''ip'' =>get_clIEnt_ip(),//这个是系统自带的一个函数,IP也是可以伪造的。
 ''created_date'' =>date ( "Y-m-d H:i:s" )
 );
 $id = $db->save(''phpaadb_message'',$record);
 if($id){
 echo "<script>alert(''留言成功!管理员审核才能看到!'')
 window.location=''message.php'';</script>";
 }
 }
 }
 
 
 那么我们的数据已经提交进数据库,当管理员点击相关函数进行触发的时候,就引发了XSS
 
 
 这个系统的后台在添加管理员账号的时候没有进行外部数据的提交,可以自己伪造CSRF进行添加管理员的操作。详细的大家可以测试。
 0x01 cookIE欺骗
 漏洞文件:/admin/global.php
 <?php
 /**
 * 后台公用配置文件
 *
 * 用于后台应用初始化、后台权限验证 等
 */
 require_once ''../data/config.inc.php''; //系统初始化文件
 require_once ''../include/function.admin.php''; //后台公用函数库
 
 //后台登陆验证
 if (!isset($_COOKIE[''userid'']) || empty($_COOKIE[''userid''])){ //2B程序员只是判断了 userid是否存在,当然可以绕过。防范的话就是session验证或者生成随机数的cookIE
 setcookIE(lastURL,get_url());//上次访问地址
 header("Location: login.php");
 }
 ?>
 利用方式:通过cookIE&&sqlinjection工具伪造userid=任意值。然后访问/admin/index.php即可进入后台
 | 
 |