|
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即可进入后台 |
|