一、以前安装过,我这先验证下漏洞 注册普通账号权限:
进入到会员中心的短消息:
这里给管理员发送短消息:
管理员登录后点击我们发的消息:
直接实际测试:
我们后台已经拿到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代码审计)
【网络安全】漏洞挖掘: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语句执行导致的注入。原理在第一次进行数据库插入数据的时候,仅仅只是使用了个别函数对其中的特殊字符进行了转义,在后端代码中可能被转义,
BUUCTF—[MRCTF2020]Ez_bypass1
热爱可抵岁月漫长_
php web安全
题目链接:BUUCTF在线评测一、知识点1.PHP代码审计2.MD5碰撞(强碰撞,"===")3.PHP类型比较二、解题过程1.代码审计,打开题目链接后页面显示如下涉及的函数功能:$符号是PHP语言中用来表示变量的标识符整形变量:$age=25;字符串变量:$name="John";⚪include('flag.php'):执行结果:包含并运行指定的外部文件'flag.php'。返回值:无。如果文
PHP代码审计10—命令执行漏洞
W0ngk
PHP代码审计 php 安全 命令执行 CTF
文章目录一、命令执行漏洞基础1、漏洞概述与原理2、漏洞检测3、常见命令拼接符4、常见防御方法绕过1)空格过滤绕过2)黑名单绕过3)命令无回显绕过二、CTF例题分析1、BUUCTF2018Onlinetool2、CTF.showweb31三、参考资料一、命令执行漏洞基础1、漏洞概述与原理应用程序有时需要调用一些执行系统命令的函数,如在PHP中,使用system、exec、shell_exec、pas
熊海CMS 靶场
diaobusi-puls
网络安全专栏 CMS靶场 安全 网络
熊海CMS靶场0x01前言初步了解cms,ContentManagementSystem内容管理系统。它是一种用于创建、编辑、管理和发布内容的软件程序或工具。内容管理系统通常用于网站、博客、企业内部系统等各种应用中,可以帮助用户管理和发布各种类型的内容,如文章、图片、视频、文件等。进行PHP代码审计,代码审计是一种白盒测试,以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对
通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理[RoarCTF 2019]Easy Calc 1
白猫a٩
CTF做题笔记 php 开发语言 web安全 网络安全 后端 前端 android
题目环境:依此输入以下内容并查看回显结果1+11’index.phpls到这里没思路了F12查看源代码一定要仔细看啊,差点没找到,笑哭访问calc.php文件果然有点东西PHP代码审计error_reporting(0);关闭错误报告通过GET方式传参的参数numshow_source函数将文件内容显示出来参数num的值赋值给变量str创建一个了名为blacklist的数组,该数组包含一系列字符,
攻防世界新手练习区——unseping
Redemption8
Ctf刷题 php ctf 网络安全
目录知识点解读题目源码:命令绕过知识点PHP代码审计PHP序列化和反序列化PHP中魔术方法命令执行绕过方式解读题目源码:这道题首先一上来就是一段PHP代码,其中看到unserialize()就知道考的是反序列化,但是我们再往上看代码会发现还有命令执行绕过的知识点。做出这道题的第一步就是能够理清代码执行顺序和各个函数的功能。接下来我们先分析一下源码。method=$method;$this->arg
[网鼎杯 2020 青龙组]AreUSerialz 1
bazzza
学习 后端 php 安全 http
打开靶场,是一道php代码审计的题目,是个反序列化的题目分块对代码进行分析,先分析输入部分functionis_valid($s){for($i=0;$i=32&&ord($s[$i])<=125))//限制字符串的范围returnfalse;returntrue;}if(isset($_GET{'str'})){$str=
“零基础”PHP代码审计入门
渗透测试老鸟-九青
代码审计 android 安全 php
目录一、代码审计目的二、代码审计基础三、代码审计思路四、PHP核心配置五、代码审计环境六、手动调试代码七、PHP的弱类型八、学习漏洞函数九、审计入门总结推荐一些demo:一、代码审计目的代码审计指的是对源代码进行检查,寻找代码中的bug以及安全缺陷(漏洞)。代码审计这是一个需要多方面技能的技术,也是需要一定的知识储备。我们需要掌握编程,安全工具的使用、漏洞原理、漏洞的修复方式、函数的缺陷等等,如果
ctf-web
ch1762
ctf
ctf-web信息搜集认证绕过SQL注入文件上传文件包含PHP代码审计信息搜集源码泄露页面源代码敏感文件泄漏备份文件(.swp/.bak/.beifen/~/phps等)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MGonEuLW-1604453612546)(https://i.loli.net/2020/11/02/kUboAxLhtRvD85z.png)]数
多线程编程之理财
周凡杨
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