一、以前安装过,我这先验证下漏洞 注册普通账号权限:
进入到会员中心的短消息:
这里给管理员发送短消息:
管理员登录后点击我们发的消息:
直接实际测试:
我们后台已经拿到cookie了
利用获取的cooKie成功登录admin账户:
二、好了分析源码:
elseif($job=='send')
{
if($step==2)
{
$rsdb=$userDB->get_passport($touser,'name');
if(!$rsdb)
{
showerr("当前用户不存在");
}
if(!$title){
showerr("标题不能为空");
}
if(strlen($array[title])>100){
showerr("标题太长了!");
}
$array[touid]=$rsdb[uid];
$array[fromuid]=$lfjuid;
$array[fromer]=$lfjid;
$array[title]=filtrate($title);
//针对火狐浏览器做的处理
$postdb[content] = str_replace("=\\\"../$webdb[updir]/","=\\\"$webdb[www_url]/$webdb[updir]/",$postdb[content]);
$postdb[content] = preg_replace('/javascript/i','java script',$postdb[content]);
$postdb[content] = preg_replace('/
搜索 function pm_msgbox(
//发站内消息
function pm_msgbox($array){
global $db,$pre,$timestamp,$webdb,$TB_pre,$TB,$userDB,$db_modes;
$array[content] = addslashes($array[content]);
$array[title] = addslashes($array[title]);
if( ereg("^pwbbs",$webdb[passport_type]) &&!is_array($db_modes) )
{
if(strlen($array[title])>130){
showerr("标题不能大于65个汉字");
}
if(is_table("{$TB_pre}msgc")){
$db->query("INSERT INTO {$TB_pre}msg (`touid`,`fromuid`, `username`, `type`, `ifnew`, `mdate`) VALUES ('$array[touid]','$array[fromuid]', '$array[fromer]', 'rebox', '1', '$timestamp')");
$mid=$db->insert_id();
$db->query("INSERT INTO {$TB_pre}msgc (`mid`, `title`, `content`) VALUES ('$mid','$array[title]','$array[content]')");
}else{
$db->query("INSERT INTO {$TB_pre}msg (`touid`,`fromuid`, `username`, `type`, `ifnew`, `title`, `mdate`, `content`) VALUES ('$array[touid]','$array[fromuid]', '$array[fromer]', 'rebox', '1', '$array[title]', '$timestamp', '$array[content]')");
}
$array=array(
'uid'=>$array[touid],
'newpm'=>1
);
$userDB->edit_pw_member($array);
}
elseif(defined("UC_CONNECT"))
{
if(strlen($array[title])>75){
showerr("标题不能大于32个汉字");
}
uc_pm_send('$array[fromuid]','$array[touid]','$array[title]','$array[content]',1,0,1);
}
else
{
if(strlen($array[title])>130){
showerr("标题不能大于65个汉字");
}
$db->query("INSERT INTO `{$pre}pm` (`touid`,`fromuid`, `username`, `type`, `ifnew`, `title`, `mdate`, `content`) VALUES ('$array[touid]','$array[fromuid]', '$array[fromer]', 'rebox', '1', '$array[title]', '$timestamp', '$array[content]')");
}
}
没有过滤xss,concent直接插入数据库了
然后在读取内容的时候,代码如下:
elseif($job=='read')
{
if( ereg("^pwbbs",$webdb[passport_type]) &&!is_array($db_modes) )
{
if($newpw){
$SQL="SELECT A.*,B.* FROM {$TB_pre}msg A LEFT JOIN {$TB_pre}msgc B ON A.mid=B.mid WHERE A.`touid`='$lfjuid' AND A.type='rebox' AND A.mid='$mid'";
}else{
$SQL="SELECT * FROM {$TB_pre}msg WHERE `touid`='$lfjuid' AND type='rebox' AND mid='$mid'";
}
$db->query("UPDATE {$TB_pre}msg SET `ifnew`=0 WHERE `touid`='$lfjuid' AND type='rebox' AND mid='$mid'");
$rs=$db->get_one("SELECT * FROM {$TB_pre}msg WHERE `touid`='$lfjuid' AND type='rebox' AND ifnew=1");
if(!$rs){
$array=array(
'uid'=>$lfjuid,
'username'=>$lfjid,
'newpm'=>0
);
$userDB->edit_pw_member($array);
}
}
else
{
$SQL="SELECT * FROM `{$pre}pm` WHERE `touid`='$lfjuid' AND type='rebox' AND mid='$mid'";
$db->query("UPDATE `{$pre}pm` SET `ifnew`=0 WHERE `touid`='$lfjuid' AND type='rebox' AND mid='$mid'");
}
$rsdb=$db->get_one($SQL);
$rsdb[mdate]=date("Y-m-d H:i",$rsdb[mdate]);
require_once(ROOT_PATH."inc/encode.php");
$rsdb[content]=format_text($rsdb[content]);
require(dirname(__FILE__)."/"."head.php");
require(dirname(__FILE__)."/"."template/pm/read.htm");
require(dirname(__FILE__)."/"."foot.php");
}
function format_text($message){
return convert($message);
}
function convert($message,$allow='',$type="post")
{
global $code_num,$code_htm,$updir,$powerck,$N_path,$badword,$usr_style,$webdb;
$code_num=0;
$code_htm=array();
if(strpos($message,"[code]") !== false && strpos($message,"[/code]") !== false){
$message=preg_replace("/\[code\](.+?)\[\/code\]/eis","phpcode('\\1')",$message);
}else{//1
$message=str_replace("\r","",$message);
$message=str_replace(">\n",">",$message);
$message=preg_replace("/(>)([^<]*)()([^<]*)(<\/tr)/","\\1\\3",$message);
$message=preg_replace("/(>)([^<]*)( ",$message);
$message =str_replace("[u]","",$message);
$message =str_replace("[/u]"," ",$message);
$message =str_replace("[b]","",$message);
$message =str_replace("[/b]"," ",$message);
$message =str_replace("[i]","",$message);
$message =str_replace("[/i]"," ",$message);
$message =str_replace("[list]","",$message);
$message =str_replace('[list=1]', '', $message);
$message =str_replace('[list=a]', '', $message);
$message =str_replace('[list=A]', '', $message);
$message =str_replace('[*]', '', $message);
$message =str_replace("[/list]"," ",$message);
//$message =str_replace("> ",$message);
/*
if($webdb['filtrate_content']){
$detail=explode("\r\n",$webdb['filtrate_content']);
for($i=0;$i$detail2[1]",$message);
}
}
*/
$searcharray = array(
"/\[font=([^\[]*)\](.+?)\[\/font\]/is",
"/\[color=([#0-9a-z]{1,10})\](.+?)\[\/color\]/is",
"/\[email=([^\[]*)\](.+?)\[\/email\]/is",
"/\[email\]([^\[]*)\[\/email\]/is",
"/\[size=([^\[]*)\](.+?)\[\/size\]/is",
"/(\[fly\])(.+?)(\[\/fly\])/is",
"/(\[move\])(.+?)(\[\/move\])/is",
"/(\[align=)(left|center|right)(\])(.+?)(\[\/align\])/is",
"/(\[glow=)(\S+?)(\,)(.+?)(\,)(.+?)(\])(.+?)(\[\/glow\])/is"
//"/\[url=([^\[]*)\](.+?)\[\/url\]/is",
//"/\[url\]([^\[]*)\[\/url\]/is"
);
$replacearray = array(
"\\2 ",
"\\2 ",
"\\2 ",
"\\1 ",
"\\2 ",
"\\2 ",
"\\2 ",
"\\4
",
"\\8 "
//"\\2 ",
//"\\1 "
);
$message=preg_replace($searcharray,$replacearray,$message);
//if ($allow['pic']){
$message = preg_replace("/\[img\](.+?)\[\/img\]/eis","cvpic('\\1')",$message);
//} else{
// $message = preg_replace("/\[img\](.+?)\[\/img\]/eis","nopic('\\1')",$message);
//}
if(strpos($message,'[/URL]')!==false || strpos($message,'[/url]')!==false){
$searcharray = array(
"/\[url=(https?|ftp|gopher|news|telnet|mms|rtsp)([^\[]*)\](.+?)\[\/url\]/eis",
"/\[url\]www\.([^\[]*)\[\/url\]/eis",
//"/\[url\][^www\.]([^\[]*)\[\/url\]/eis",
"/\[url\](https?|ftp|gopher|news|telnet|mms|rtsp)([^\[]*)\[\/url\]/eis"
);
$replacearray = array(
"cvurl('\\1','\\2','\\3')",
"cvurl('\\1')",
//"cvurl('\\1')",
"cvurl('\\1','\\2')",
);
$message=preg_replace($searcharray,$replacearray,$message);
}
//if ($allow['flash']){
$message = preg_replace("/(\[flash=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/flash\])/is"," [Full Screen ] ",$message);
//$message = preg_replace("/(\[swf\])(\S+?)(\[\/swf\])/is"," [Full Screen ] ",$message);
$message= preg_replace("/\[swf\]\s*(\S+?)\s*\[\/swf\]/is"," [Full Screen ] ",$message);
//}else{
// $message = preg_replace("/(\[flash=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/flash\])/is"," flash: \\6 ",$message);
//}
if($type=="post"){
if($allow['mpeg']){
$message = preg_replace("/\[wmv\]\s*(\S+?)\s*\[\/wmv\]/is","
",$message);
$message = preg_replace("/\[rm\]\s*(\S+?)\s*\[\/rm\]/is"," ",$message);
}else{
$message = preg_replace("/(\[wmv\])(\S+?)(\[\/wmv\])/is"," \\2 ",$message);
$message = preg_replace("/(\[rm\])(\S+?)(\[\/rm\])/is"," \\2 ",$message);
}
if ($allow['iframe']) {
$message = preg_replace("/\[iframe\]\s*(\S+?)\s*\[\/iframe\]/is","",$message);
}else{
$message = preg_replace("/(\[iframe\])(\S+?)(\[\/iframe\])/is","Iframe Close: \\2 ",$message);
}
//此处位置不可调换
if (strpos($message,"[quote]") !== false && strpos($message,"[/quote]") !== false){
$message=preg_replace("/\[quote\](.+?)\[\/quote\]/eis","qoute('\\1')",$message);
}
}
}//1
if(is_array($code_htm)){
krsort($code_htm);
foreach($code_htm as $key1=>$codehtm){
foreach($codehtm as $key=>$value){
$message=str_replace("[\tbbs_code_$key\t]",$value,$message);
}
}
}
return $message;
}
你可能感兴趣的:(#,php代码审计)
2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(四)
落寞的魚丶
网络空间安全(职业技能大赛) # 信息安全管理与评估赛项 2025职业湖北职业技能大赛 职业技能大赛省赛 高职组 信息安全评估与管理赛项
2025学年湖北省职业院校技能大赛“信息安全管理与评估”赛项样题卷(四)第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务1:应急响应(可以培训有答案)任务2:通信数据分析取证(40分)任务3:基于Windows计算机单机取证(120分)任务4:PHP代码审计(40分)第三部分:网络安全渗透、理论技能与职业素养任务一:商城购物系统(60分)可以培训任务二:办公系统(60分)任务三:F
2025年渗透测试面试题总结-拷打题库06(题目+回答)
独行soc
2025年渗透测试面试指南 php 开发语言 中间件 xss 前端 java 数据挖掘
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。目录1.Sleep被禁用后的SQL注入2.XSS属性控制利用3.CSRF防护4.危险请求头5.XXE高发场景6.Java中间件漏洞7.IIS漏洞8.Python框架漏洞9.任意密码重置漏洞10.PHP代码审计要点11.绕过HTTP-OnlyCookie12.CTF经典题目
【网络安全 | PHP代码审计】YXcms
秋说
web安全 php 漏洞挖掘 代码审计
原创文章,禁止转载。文章目录环境配置1.4.5版本安装1.2.1版本安装代码审计session伪造实现账户接管XSSGetshellXSS漏洞无回显SQL注入默认密钥下的SQL注入SQL显错注入未授权+代码执行任意文件删除1任意文件删除2YXcms是一款基于PHP+MySql开发的网站管理系统,采用轻量级MVC设计模式。环境配置1.4.5版本安装安装地址:https://github.com/cc
PHP代码审计
Smile灬凉城666
网络安全 php 开发语言 安全
目的:对源代码进行审计,寻找代码中的BUG和安全漏洞一.代码审计的基础1.基础:html/js基础语法、PHP基础语法,面向对象思想,PHP小项目开发(Blog、注册登录、表单、文件上传、留言板等),Web漏洞挖掘及利用,Web安全工具基本使用(burpsuite、sqlmap等),代码审计工具(seay审计系统、zendstudio+xdebug等)2.代码审计两种基本方式:通读全文源码:通读全
php代码审计学习路线
子非鱼999
杂记 php 学习 开发语言
学习PHP代码审计可以帮助你识别和修复PHP应用中的安全漏洞,保护应用免受恶意攻击。以下是系统的PHP代码审计学习路线,从基础到高级逐步提升:一、基础阶段:打好编程和安全基础PHP基础学习PHP语言的基础知识,如变量、数据类型、数组、字符串处理、函数、类和对象等。学习PHP的常见操作:文件处理、会话管理、数据库操作(如MySQL)。推荐资源:PHP官方文档PHP相关学习网站(如菜鸟教程)Web安全
PHP代码审计学习02
玄客)
学习
目录代码审计一般思路Beescms代码审计(upload)Finecms基于前台MVC任意文件上传挖掘思路CLTPHP基于thinkphp5框架的文件上传挖掘思路今天来看PHP有框架MVC类,文件上传,断点调试挖掘。同样还是有关键字搜索和功能点抓包两种方法来找到文件和代码段,最后进行分析。经过这两天的代码审计学习,有了一些认识,那就是渗透测试相当于是黑盒测试,而代码审计相当于是白盒测试,代码审计会
BUUCTF--[羊城杯 2020]Easyphp2
Uzero.
进入后的页面根据题目提示我们可以知道这是一道PHP代码审计的题所以使用伪协议查看源代码,这里使用的是两次url编码绕过/?file=php://filter/read=convert.quoted-printable-encode/resource=GWHT.php/?file=php://filter/read=convert.%2562%2561%2573%2565%2536%2534-enc
1月15学习
小丑皇,王中王
学习
[SWPUCTF2018]SimplePHPphar反序列化的三个前提条件可以上传phar文件有可以利用的魔术方法文件操作函数的参数可控网站中有两个功能:查看文件和上传文件,利用查看文件将源码都先弄下来进行PHP代码审计。可以看到存在任意文件读取漏洞,读取所有文件的源代码file.phpThereisnofiletoshow!";}$show=newShow();if(file_exists($f
【网络安全】漏洞挖掘:php代码审计
秋说
网络安全 php web安全 漏洞挖掘
未经许可,不得转载。文章目录正文正文在应用程序中,通过一个JavaScript注释发现了一个备份ZIP文件。解压后,获取了应用程序的代码,其中包含如下代码片段:代码首先检查变量$action是否等于'convert',如果是,则继续执行。随后对传入的变量$data使用trim()函数去除两端空白字符,并使用eval()函数执行$data的内容。显然,代码对$data没有进行任何过滤或验证,因此可以
【web | CTF】BUUCTF [网鼎杯 2020 青龙组]AreUSerialz
星盾网安
CTF php
天命:php的序列化题目简直是玄学,既不能本地复现,也不能求证靶场环境天命:本地php是复现不了反序列化漏洞的,都不知道是版本问题还是其他问题天命:这题也是有点奇怪的,明明用字符串2也应该是可以,但偏偏就不行,神奇了进来题目先看到php代码审计,是反序列化漏洞先看进来入口的逻辑,判断是不是正常的ascii码字符,然后反序列化,可以忽略校验,都是正常的//校验你是不是ascii码里面的合法字符fun
渗透测试练习题解析 3(CTF web)
安全不再安全
CTF web 前端 安全 网络安全 web安全
1、[网鼎杯2020朱雀组]phpweb1考点:反序列化漏洞利用进入靶场,查看检查信息,发现存在两个参数func和p查看页面源代码payload:func=file_get_contents&p=php://filter/resource=index.php整理后,就是PHP代码审计了 func!=""){ echogettime($this->func,$this->p);
PHP代码审计之任意文件读取
order by
PHP代码审计 php 安全 web安全
文章目录一、任意文件读取原理二、任意文件读取危害三、任意文件读取相关函数任意文件读取代码审计总结一、任意文件读取原理在一些文件下载以及浏览的工能点中,存在一些文件读取的函数,且参数中的文件名或者路径可以由于控制关键字符未能进行有效的过滤就会造成任意文件读取。二、任意文件读取危害①如果读取路径没有限制可以读取系统下任意敏感文件,如数据库账号密码,后台账号密码等…②通过任意文件读取将后端源码全部读取到
【BUUCTF】 HCTF2018 WarmUp
90wunch
php 安全
这是一道有关php代码审计的入门题目,进入所给链接后看到的是一张滑稽的表情包按照常规思路f12,看一看有什么,结果发现了一个名为source.php的注释访问这个php页面,发现有一段代码代码先定义了一个checkFile函数,然后主函数在下大致意思是,只有链接中包含了file文件请求且通过了checkFile函数的验证,那么将把链接包含的file文件include到页面中,否则输出一张图片(推测
PHP代码审计之实战审代码篇2
昵称还在想呢
PHP代码审计 php 开发语言
4.仔细观察如下代码,思考代码有什么缺陷,可能由此引发什么样的问题?logged_in){echo'Don\'tbothertryingtohackme!!!!!Thishackattempthasbeenlogged';$log->Warn("SecurityIssue:SometriedtoaccessthisfiledirectlyfromIP:".$_SERVER['REMOTE_ADDR
php代码审计知识点,PHP代码审计基础知识点
幸福暗恋我
php代码审计知识点
一,PHP核心配置一·配置典型两个文件(配置目录的规则文件)php.ini(即仅在重启的时候可用).user.ini二·配置典型的命令语句1.用户限制语句,函数类变量类大小写敏感directive=value大小写敏感全局变量配置register_globals=off(作用是关闭自动注册的全局变量)可使用的符号与参数类(ini文件中)!、()、|位或、&位与、~位非、Value可以使:用引号界定
php代码审计基础,PHP代码审计基础-初级篇
weixin_39612720
php代码审计基础
对于php代码审计我也是从0开始学的,对学习过程进行整理输出沉淀如有不足欢迎提出共勉。对学习能力有较高要求,整个系列主要是在工作中快速精通php代码审计,整个学习周期5天,建议花一天时间熟悉php语法。我是直接phpstudy2019一键搭建小白首选所谓工欲善其事必先利其器,找一款适合自己的php开发工具自行百度搭建,我用的是phpstrom.初级篇主要讲1.php历史版本漏洞。2.变量配置缺陷。
DAY31:代码审计基础( PHP 篇)
EdmunDJK
php apache 开发语言
DAY31:代码审计基础(PHP篇)1、PHP代码审计基础1.1、代码审计概述代码审计(Codeaudit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误1.2、基本的PHP语法PHP脚本可以放在文档中的任何位置。PHP脚本以结束:PHP
php代码审计知识点,php代码审计知识点总结
翔宇情
php代码审计知识点
**Php可以命令执行的函数**stringshell_exec(stringcommand)Shell_exec通过shell环境执行命令,并且将完整的输出以字符串的方式返回。PHP先运行一个shell环境,然后让shell进程运行你的命令,并且把所有输出以字符串形式返回,如果程序执行有错误或者程序没有输出,则返回null。$output=shell_exec('whoami');echo"$o
PHP代码审计基础知识
廾匸0705
网络安全 代码审计 网络安全 代码审计 php
前言本文章主要是PHP代码审计的一些基础知识,包括函数的用法,漏洞点,偏向基础部分,个人能力有限,部分可能会出现错误或者遗漏,读者可自行补充。代码执行代码执行是代码审计当中较为严重的漏洞,主要是一些命令执行函数的不适当使用。那么,常见的能够触发这类漏洞的函数有哪些呢?eval()想必大家对eval()函数应该并不陌生,简而言之eval()函数就是将传入的字符串当作PHP代码来进行执行。eval(s
HCTF 2018 Warm up
MiaoA知识
CTF-web刷题 php
HCTF2018Warmup题目分析1.查看题目显示是一个php代码审计的题目2.登入网页查看3.既然是代码审计,就查看页面源代码看到源代码里提示一个source.php文件,所以我们猜测,要么是加载过来一个php文件(可是F12以后,没有发现),要么就是当前目录下有个source.php4.访问当前目录下的source.php,果然成功5.分析php代码直接复制到md,清除转义为html的字符,
PHP代码审计之入门实战
zsoft
系统介绍CMS名称:新秀企业网站系统PHP版官网:www.sinsiu.com版本:这里国光用的1.0正式版(官网最新的版本有毒,网站安装的时候居然默认使用远程数据库???迷之操作那站长的后台密码岂不是直接泄露了?疑似远程数据库地址:server.sinsiu.net)下载地址:蓝奏云Windows下使用PHPStudy可以直接安装,搭建起来还是很简单的。防护策略虽然这是一个不知名的小系统,但是安
Writeup 实验吧/WEB/Guess Next Session/1788 【PHP代码审计】
growing27
http://www.shiyanbar.com/ctf/1788http://ctf5.shiyanbar.com/web/Session.php源码:Wrongguess.';}mt_srand((microtime()^rand(1,10000))%rand(1,10000)+rand(1,10000));?>burp抓包,提交如下,另两者都为空,可以绕过判断password=PHPSESS
PHP代码审计之实战审代码篇1
昵称还在想呢
PHP代码审计 php android 开发语言
本章代码来之各种php的cms历史漏洞源码,供小伙伴们学习,本次三题1.仔细观察如下代码,思考代码有什么缺陷,可能由此引发什么样的问题?//检测旧密码是否正确if($password!=''){$oldpassword=md5(md5($oldpassword));$r=$dosql->GetOne("SELECT`password`FROM`#@__member`WHERE`username`=
PHP代码审计之反序列化攻击链CVE-2019-6340漏洞研究
昵称还在想呢
PHP代码审计 php 开发语言 web安全 安全
关键词php反序列化cmsDrupalCVE-2019-6340DrupalKernel前言简简单单介绍下php的反序列化漏洞php反序列化漏洞简单示例来看一段简单的php反序列化示例isValid){if(filter_var($this->ipAddress,FILTER_VALIDATE_IP)){$this->isValid=True;}}$this->ping();}publicfunc
3.[BUUCTF HCTF 2018]WarmUp1
图灵·飞︿( ̄︶ ̄)︿
WEB刷题 web基础
1.看题目提示分析题目内容盲猜一波~:是关于PHP代码审计的2.打开链接,分析题目给你提示了我们访问source.php来看一下大boss出现,开始详细手撕~3.手撕PHP代码(代码审计)本人是小白,所以第一步,先问chatGPT的意见:这个主要是对classemmm类的分析,然后还有后面的三个&&条件判断:结合代码去理解GPT给的解释,就可以很容易形成一个思路:重点在:if(!empty($_R
PHP代码审计之基础 方法 思路 流程
st3pby
渗透测试 网络安全 web安全
工具Fotify|代码审计静态扫描工具,商业化静态代码扫描工具,误报率相对较低。seay|源代码审计工具PHPStorm|是PHP编程语言开发的集成环境。chrome&burp&HackerBar插件&xdebug插件Xcheck|Xcheck是一个由腾讯公司CSIG质量部代码安全检查团队自研的静态应用安全测试工具。Xcheck在基于成熟的污点分析技术与对抽象语法树的精准剖解上,通过巧妙优雅的实现
[BJDCTF2020]Mark loves cat1
怪兽不会rap_哥哥我会crash
BUUCTF web题 php git泄露 php代码审计 ctf
提示-信息收集.git泄露php代码审计拿到题先做信息收集这里用dirsearch扫了下目录###如果没有dirsearch我在之前的这篇博客有写dirsearch的安装环境以及地址还有怎么扫buuctf里的题[GXYCTF2019]禁止套娃1-CSDN博客从扫描结果来看这里存在git泄露这里使用githack拉下来git泄露的信息cd到扫描下来的文件里出现了三个文件,flag难道直接扫出来了吗读
攻防世界web新手练习 -unseping
sean7777777
WEB刷题记录 网络安全 web安全
攻防世界web新手练习-unseping新版攻防世界的这个题目有点给力,从今天开始刷题刷题本题的知识点很多,总结出来以下几点php代码审计php反序列化命令执行的绕过方式空格绕过空环境变量绕过相关命令源码分析首先对源码进行分析method=$method;$this->args=$args;}//析构函数析构函数(destructor)与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调
【高级渗透篇】网络安全面试
世界尽头与你
# 渗透测试面试 web安全 安全
【高级渗透篇】网络安全面试1.权限维持2.提权MySQL提权3.Java内存马4.代码安全Java代码审计PHP代码审计1.权限维持Linux权限维持方法论Windows权限维持方法论2.提权MySQL提权1、MySQLudf提权原理:MySQL可以通过创建UDF函数的方式来扩展其自定义的功能。如果UDF动态链接库中包含恶意代码,当MySQL数据库服务器加载这个恶意的UDF动态链接库时,这个恶意代
sqli-labs靶场详解less-24(二次注入)
网安小t
SQL注入 sqli-labs靶场 安全 web安全 sql 网络安全 安全性测试
less-24对于一个像我一样的小白来说这关就像php代码审计一开始进行判断注入点的时候怎么都找不到一点思路都没有只能搜教程说是二次注入从来没遇见的题型于是从代码审计开始先说一下什么叫二次注入二次注入二次注入是指通过SQL语句存储到数据库的用户输入被读取后再次被SQL语句执行导致的注入。原理在第一次进行数据库插入数据的时候,仅仅只是使用了个别函数对其中的特殊字符进行了转义,在后端代码中可能被转义,
多线程编程之理财
周凡杨
java 多线程 生产者 消费者 理财
现实生活中,我们一边工作,一边消费,正常情况下会把多余的钱存起来,比如存到余额宝,还可以多挣点钱,现在就有这个情况:我每月可以发工资20000万元 (暂定每月的1号),每月消费5000(租房+生活费)元(暂定每月的1号),其中租金是大头占90%,交房租的方式可以选择(一月一交,两月一交、三月一交),理财:1万元存余额宝一天可以赚1元钱,
[Zookeeper学习笔记之三]Zookeeper会话超时机制
bit1129
zookeeper
首先,会话超时是由Zookeeper服务端通知客户端会话已经超时,客户端不能自行决定会话已经超时,不过客户端可以通过调用Zookeeper.close()主动的发起会话结束请求,如下的代码输出内容
Created /zoo-739160015
CONNECTEDCONNECTED
.............CONNECTEDCONNECTED
CONNECTEDCLOSEDCLOSED
SecureCRT快捷键
daizj
secureCRT 快捷键
ctrl + a : 移动光标到行首ctrl + e :移动光标到行尾crtl + b: 光标前移1个字符crtl + f: 光标后移1个字符crtl + h : 删除光标之前的一个字符ctrl + d :删除光标之后的一个字符crtl + k :删除光标到行尾所有字符crtl + u : 删除光标至行首所有字符crtl + w: 删除光标至行首
Java 子类与父类这间的转换
周凡杨
java 父类与子类的转换
最近同事调的一个服务报错,查看后是日期之间转换出的问题。代码里是把 java.sql.Date 类型的对象 强制转换为 java.sql.Timestamp 类型的对象。报java.lang.ClassCastException。
代码:
可视化swing界面编辑
朱辉辉33
eclipse swing
今天发现了一个WindowBuilder插件,功能好强大,啊哈哈,从此告别手动编辑swing界面代码,直接像VB那样编辑界面,代码会自动生成。
首先在Eclipse中点击help,选择Install New Software,然后在Work with中输入WindowBui
web报表工具FineReport常用函数的用法总结(文本函数)
老A不折腾
finereport web报表工具 报表软件 java报表
文本函数
CHAR
CHAR(number):根据指定数字返回对应的字符。CHAR函数可将计算机其他类型的数字代码转换为字符。
Number:用于指定字符的数字,介于1Number:用于指定字符的数字,介于165535之间(包括1和65535)。
示例:
CHAR(88)等于“X”。
CHAR(45)等于“-”。
CODE
CODE(text):计算文本串中第一个字
mysql安装出错
林鹤霄
mysql安装
[root@localhost ~]# rpm -ivh MySQL-server-5.5.24-1.linux2.6.x86_64.rpm Preparing... #####################
linux下编译libuv
aigo
libuv
下载最新版本的libuv源码,解压后执行:
./autogen.sh
这时会提醒找不到automake命令,通过一下命令执行安装(redhat系用yum,Debian系用apt-get):
# yum -y install automake
# yum -y install libtool
如果提示错误:make: *** No targe
中国行政区数据及三级联动菜单
alxw4616
近期做项目需要三级联动菜单,上网查了半天竟然没有发现一个能直接用的!
呵呵,都要自己填数据....我了个去这东西麻烦就麻烦的数据上.
哎,自己没办法动手写吧.
现将这些数据共享出了,以方便大家.嗯,代码也可以直接使用
文件说明
lib\area.sql -- 县及县以上行政区划分代码(截止2013年8月31日)来源:国家统计局 发布时间:2014-01-17 15:0
哈夫曼加密文件
百合不是茶
哈夫曼压缩 哈夫曼加密 二叉树
在上一篇介绍过哈夫曼编码的基础知识,下面就直接介绍使用哈夫曼编码怎么来做文件加密或者压缩与解压的软件,对于新手来是有点难度的,主要还是要理清楚步骤;
加密步骤:
1,统计文件中字节出现的次数,作为权值
2,创建节点和哈夫曼树
3,得到每个子节点01串
4,使用哈夫曼编码表示每个字节
JDK1.5 Cyclicbarrier实例
bijian1013
java thread java多线程 Cyclicbarrier
CyclicBarrier类
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环的 barrier。
CyclicBarrier支持一个可选的 Runnable 命令,
九项重要的职业规划
bijian1013
工作 学习
一. 学习的步伐不停止 古人说,活到老,学到老。终身学习应该是您的座右铭。 世界在不断变化,每个人都在寻找各自的事业途径。 您只有保证了足够的技能储
【Java范型四】范型方法
bit1129
java
范型参数不仅仅可以用于类型的声明上,例如
package com.tom.lang.generics;
import java.util.List;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value =
【Hadoop十三】HDFS Java API基本操作
bit1129
hadoop
package com.examples.hadoop;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoo
ua实现split字符串分隔
ronin47
lua split
LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或 C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。LUA只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从 而适合嵌入在别的程序里。因此在lua中并没有其他语言那样多的系统函数。习惯了其他语言的字符串分割函
java-从先序遍历和中序遍历重建二叉树
bylijinnan
java
public class BuildTreePreOrderInOrder {
/**
* Build Binary Tree from PreOrder and InOrder
* _______7______
/ \
__10__ ___2
/ \ /
4
openfire开发指南《连接和登陆》
开窍的石头
openfire 开发指南 smack
第一步
官网下载smack.jar包
下载地址:http://www.igniterealtime.org/downloads/index.jsp#smack
第二步
把smack里边的jar导入你新建的java项目中
开始编写smack连接openfire代码
p
[移动通讯]手机后盖应该按需要能够随时开启
comsci
移动
看到新的手机,很多由金属材质做的外壳,内存和闪存容量越来越大,CPU速度越来越快,对于这些改进,我们非常高兴,也非常欢迎
但是,对于手机的新设计,有几点我们也要注意
第一:手机的后盖应该能够被用户自行取下来,手机的电池的可更换性应该是必须保留的设计,
20款国外知名的php开源cms系统
cuiyadll
cms
内容管理系统,简称CMS,是一种简易的发布和管理新闻的程序。用户可以在后端管理系统中发布,编辑和删除文章,即使您不需要懂得HTML和其他脚本语言,这就是CMS的优点。
在这里我决定介绍20款目前国外市面上最流行的开源的PHP内容管理系统,以便没有PHP知识的读者也可以通过国外内容管理系统建立自己的网站。
1. Wordpress
WordPress的是一个功能强大且易于使用的内容管
Java生成全局唯一标识符
darrenzhu
java uuid unique identifier id
How to generate a globally unique identifier in Java
http://stackoverflow.com/questions/21536572/generate-unique-id-in-java-to-label-groups-of-related-entries-in-a-log
http://stackoverflow
php安装模块检测是否已安装过, 使用的SQL语句
dcj3sjt126com
sql
SHOW [FULL] TABLES [FROM db_name] [LIKE 'pattern']
SHOW TABLES列举了给定数据库中的非TEMPORARY表。您也可以使用mysqlshow db_name命令得到此清单。
本命令也列举数据库中的其它视图。支持FULL修改符,这样SHOW FULL TABLES就可以显示第二个输出列。对于一个表,第二列的值为BASE T
5天学会一种 web 开发框架
dcj3sjt126com
Web 框架 framework
web framework层出不穷,特别是ruby/python,各有10+个,php/java也是一大堆 根据我自己的经验写了一个to do list,按照这个清单,一条一条的学习,事半功倍,很快就能掌握 一共25条,即便很磨蹭,2小时也能搞定一条,25*2=50。只需要50小时就能掌握任意一种web框架
各类web框架大同小异:现代web开发框架的6大元素,把握主线,就不会迷路
建议把本文
Gson使用三(Map集合的处理,一对多处理)
eksliang
json gson Gson map Gson 集合处理
转载请出自出处:http://eksliang.iteye.com/blog/2175532 一、概述
Map保存的是键值对的形式,Json的格式也是键值对的,所以正常情况下,map跟json之间的转换应当是理所当然的事情。 二、Map参考实例
package com.ickes.json;
import java.lang.refl
cordova实现“再点击一次退出”效果
gundumw100
android
基本的写法如下:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
//navigator.splashscreen.hide();
document.addEventListener("b
openldap configuration leaning note
iwindyforest
configuration
hostname // to display the computer name
hostname <changed name> // to change
go to: /etc/sysconfig/network, add/modify HOSTNAME=NEWNAME to change permenately
dont forget to change /etc/hosts
Nullability and Objective-C
啸笑天
Objective-C
https://developer.apple.com/swift/blog/?id=25
http://www.cocoachina.com/ios/20150601/11989.html
http://blog.csdn.net/zhangao0086/article/details/44409913
http://blog.sunnyxx
jsp中实现参数隐藏的两种方法
macroli
JavaScript jsp
在一个JSP页面有一个链接,//确定是一个链接?点击弹出一个页面,需要传给这个页面一些参数。//正常的方法是设置弹出页面的src="***.do?p1=aaa&p2=bbb&p3=ccc"//确定目标URL是Action来处理?但是这样会在页面上看到传过来的参数,可能会不安全。要求实现src="***.do",参数通过其他方法传!//////
Bootstrap A标签关闭modal并打开新的链接解决方案
qiaolevip
每天进步一点点 学习永无止境 bootstrap 纵观千象
Bootstrap里面的js modal控件使用起来很方便,关闭也很简单。只需添加标签 data-dismiss="modal" 即可。
可是偏偏有时候需要a标签既要关闭modal,有要打开新的链接,尝试多种方法未果。只好使用原始js来控制。
<a href="#/group-buy" class="btn bt
二维数组在Java和C中的区别
流淚的芥末
java c 二维数组 数组
Java代码:
public class test03 {
public static void main(String[] args) {
int[][] a = {{1},{2,3},{4,5,6}};
System.out.println(a[0][1]);
}
}
运行结果:
Exception in thread "mai
systemctl命令用法
wmlJava
linux systemctl
对比表,以 apache / httpd 为例 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service 使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service 检查服务状态 service h