eleventh-day

 · 2019-8-10 · 次阅读


33.web8(http://123.206.87.240:8002/web8/)
  进入页面后直接给出了php代码如下:
This is flag:" ." $flag

"; } else { echo "

sorry!

"; } } ?>
一分析就是一个不认识的函数,extract() 函数从数组中将变量导入到当前的符号表。该函数返回成功导入到符号表中的变量数目。
trim()函数是移除字符串两侧的字符。trim没有写变量的话可以直接移除空格以及换行符。将fn文件中获得的内容赋给f变量,如果ac=f就输出flag.进来前还提示了一个txt?去看下f12无其他内容。txt???这是什么意思,究竟是要打开一个txt吗我们先试试用get方法给ac赋值。测试随便输个?ac=1就提示出了sorry很明显必须要ac=f.现在就要打开那个txt了,打开的txt就是fn文件,然后只需要给ac赋予fn文件的内容值,然后在把fn连接上就可以了。不断猜测打开txt,f.txt不行fn.txt不行。index.txt不行。flag.txt成功了。打开后内容是flags.因而构造?ac=flags&fn=flag.txt就获得了flag.
  summary:这道题去搜索函数并且理解用了些时间,这里再总结一下自己对这几个函数的理解。首先extract是将把括号里的内容都赋值给变量。这道题括号里面是get方式输入。因而下面的变量都可以由get方式输入。然后这个trim函数是用来规范格式的有时候做过滤工作去掉空格换行符等。最后这个file_get_contents是获取到文件的内容并赋给字符串。整个这道题猜解txt极其重要,然后构造是最重要的必须要想到把fn也一起写上去这样才满足代码要求。
34.细心(http://123.206.87.240:8002/web13/)
  先把最开始进入页面的提示记录下来—想办法变成admin
进入页面后会看到404报错,然后是没有这个文件或目录。让我们再次尝试。然后最后是generated by kangle/3.5.5这个应该是个报错的web服务器名称以及版本,可以看到try again和这个web服务器都是蓝色可以点进去的链接,刚点了web服务器没用还是报错页面再试试try again,当然肯定只是刷新一下,F12看一下。因而有用的只有想办法变成admin。那么怎么获取admin权限呢,那肯定是提权了,但我不知道如何提权,百度一下。–百度暂无收获,但我想到了御剑我扫描一下看有没有后台。然后扫描出一个robots.txt,这个robots.txt来头就大了,相当于是网页管理员管理网站的一个小后门。打开这个文件后,出现了如下两行:
User-agent: *
Disallow: /resusl.php
试试打开这个php,进入页面后说我的IP已经被记录到日志了然后给了个IP给我,还说我不是管理员,那我就抓包把自己IP变成这个。这样转发包后无果,肯定无果前面的admin还没用上呢:在resusl.php左下方还有get[x]=$password因而构造?x=admin拿下flag.
35.求getshell(http://123.206.87.240:8002/web9/)
  进入页面后让我上传一个image文件不要上传php那就上传个一句话的.image文件然后抓包试试。抓好包之后肯定得上传一句话得php文件了但php都是不合法的因而要绕过它得过滤。这里相当于黑盒测试。以此尝试php4,phtml,phtm,phps,php5(包括一些字母改变大小写)
最终发现php5可以绕过。
在一篇博文中看到:
上传题:
一共三个过滤

请求头部的 Content-Type
文件后缀
请求数据的Content-Type

这个很精辟因而记录了下来,头部得multipart用mUltipart大小写绕过。这儿绕过的原理我不是很懂,这样转发包就拿下了flag.但我得弄清楚为什么这里需要大小写绕过。在查询了许多的关于Multipart/form-data我发现它是一种上传文件的方式,代码中极有可能过滤了这种方式导致无法上传文件因而大小写绕过过滤使得这种上传方式可行。
  summary:关于这里为什么头部文件的Content-Type: mUltipart/form-data;为什么要大小写绕过我找到了原因—–代码中有这样的检测机制当上传的文件是不合法的时候会对文件头进行过滤不允许上传文件,因而需要对头部的上传文件类型经行绕过处理。
  all:今天是最有收获的一天,因为我解决了一些理解上的问题这对提升是很有必要的,刷题解题的成果并不是很大当自己理解东西的能力提升了就很好。