题目:

打开网址并查看源代码:

发现源代码中有提示1p.html

于是访问网址http://114.67.175.224:11868/1p.html,发现会自动跳转到bugku

尝试访问view-source:http://114.67.175.224:11868/1p.html,可以看到该网页源代码:

escape解码Words,得到:

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

对<!--   -->内的编码尝试使用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

再次escape解码得到:

";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 !!!";
}?>

发现想要得到flag需要判断条件:$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为真:

1、$data=="bugku is a nice plateform!"

根据前提条件可以看出,$data = @file_get_contents($a,'r');但是根据

if(stripos($a,'.'))
{echo 'no no no no no no no';return ;
}

可知,$a内容不能包含'.',因此这里不能上传$a文件,要想得到$data=="bugku is a nice plateform!",可以对@file_get_contents($a,'r')使用php://input绕过:

                a)先使得$a=php://input;b)再post传参@file_get_contents想要返回的数据。

2、 $id==0

根据

if(!$_GET['id'])
{header('Location: hello.php?id=1');exit();
}

                可知不能直接传参$id=0,不然!$_GET['id']=!0为真,将会跳出整个脚本

因此可以利用php弱相关,如使得$id="0xas",使得判断条件为假且$id==0

3、strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4

想要同时满足以上三个条件,对于$b的第一个字符:

1)可以使用结束符%00,使得$b=%0011111

2)也可以使用正则表达式,如$b=?11111或者$b=.11111,$b=*11111都行(后五个字符随意)

如此,可以编写:

import requests
url="http://114.67.175.224:11868/hello.php?id=0x&b=%0011111&a=php://input"
headers={"Content-Type":"application/json"}pp=requests.post(url,headers=headers,data="bugku is a nice plateform!").text
print(pp)

得到flag:

ctf-web-never_give_up相关推荐

  1. ctf web必备工具_设计人员和开发人员的必备Web工具和服务

    ctf web必备工具 I cannot imagine that in 2018 there are people who don't use daily several web tools and ...

  2. CTF Web入门 命令执行 笔记

    CTF Web入门 命令执行 eval(读取命令),但各种字符被ban if(!pregmatch("...",$c)) #指过滤了...eval($c); 这时候可以尝试 ?c= ...

  3. CTF Web方向考点总结

    CTF Web 0X00 前言 做题已经快四个月了,接触了大大小小的题型,收藏的大师傅们的解题思路.题型总结的博客已经很多了,每次都要一个一个翻很麻烦,于是写下了这一个总结,实际上是把各大博客内容汇总 ...

  4. CTF——web个人总结

    CTF web个人总结 仅供个人参考 从0开始接触到了CTF,算是入门了,为了方便自己做题,现在记录一下web类型题目的解题思路. 目录 CTF web个人总结 工具(含后渗透) 解题思路 一.普通思 ...

  5. CTF Web学习(三)----python脚本的编写及应用

    CTF Web学习(三) python脚本的编写及应用 CTF Web学习目录链接 CTF Web学习(一):基础篇及头文件修改.隐藏 CTF Web学习(二):代码审计.burp suite应用 C ...

  6. 从0到1学习CTF WEB

    从0到1学习CTF WEB web前置技能 信息泄漏 密码口令 SQL注入 基础比较薄弱,准备逐题刷CTFHub的web类型题目顺便学习一下web方面的安全知识. web前置技能 1.请求方式: 隐藏 ...

  7. CTF——Web网站备份源码泄露

    CTF--Web网站备份源码泄露 当遇到提示说到备份时,应该敏感地想到这是需要用到网站备份文件源码的. 一般这类题是和代码审计一起出的,一般都是需要获取到备份文件然后进行分析.下面就介绍一下网站备份的 ...

  8. BugKu CTF Web

    BugKu CTF Web 滑稽 计算器 GET POST Simple_SSTI_1 矛盾 eval 变量1 Simple_SSTI_2 alert 你必须让他停下 方法一 方法二 方法三 网站被黑 ...

  9. CG CTF WEB SQL注入2

    http://4.chinalover.sinaapp.com/web6/index.php 题解: <html> <head> Secure Web Login II < ...

  10. CG CTF WEB SQL注入1

    http://chinalover.sinaapp.com/index.php 题解: <html> <head> Secure Web Login </head> ...

最新文章

  1. 传统的6d位姿估计fangfa1_你的厨房被水淹了!别担心,这只是3D深度估计做出的特效...
  2. Google Guava EventBus用于事件编程
  3. 酷毙了!三种风格的全屏幻灯片效果【附源码下载】
  4. 最火的抓包工具winpcap使用教程
  5. C#算法设计排序篇之09-基数排序(附带动画演示程序)
  6. RMAN异机恢复遭遇ORA-01547、ORA-01152、ORA-01110错误案例
  7. 为什么redis适合操作小数据,memcache适合操作大数据
  8. php html页面显示乱码怎么解决方法,html网页乱码原因以及解决办法
  9. matlab 报童 泊松分布函数,数学建模和工科数学分析(2)
  10. 系统学习机器学习之弱监督学习(一)--弱监督学习综述
  11. 【树莓派】树莓派系统安装
  12. 网络安全-文件上传漏洞的原理、攻击与防御
  13. AI大军已经兵临城下,我们离失业还有多远?
  14. RedHat(RHEL)6.2 X64 Oracle11g X64 安装参考文档
  15. sortBy和sortByKey区别
  16. 【论文导读】- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)
  17. Gta4 微软服务器,R星发布《GTA4》Win10补丁 业界良心从不令人失望
  18. Excel 2019筛选快捷键(Ctrl+Shift+L)失灵
  19. 计算机视觉就业怎么样?好找工作吗?
  20. java 短信验证码(创蓝接口)调用

热门文章

  1. python cv2统一缩放图片尺寸,将透明背景填充白色
  2. 实施ERP系统软件的十个好处,你造吗?
  3. html5 模板 知乎,Discuz贴吧知乎超级v2ex UTF(x520_v2ex)_Discuz模板_Discuz应用中心
  4. PostgreSQL外键为空(null)
  5. python-decouple简介
  6. 75.【JavaWeb-03】
  7. 【Python】遗传算法求解二元函数最值
  8. mysql 允许局域网连接,怎么设置Mysql允许局域网或外部连接的方法
  9. OkHttp3使用介绍
  10. 【git】基于github开源平台的项目进行二次开发