EIS2017-几道简单的WEB题的WP
来源:互联网 发布:比尔盖茨书单 知乎 编辑:程序博客网 时间:2024/04/19 09:54
PHP代码审计(70Pts)
先看下源代码
<?php error_reporting(0); include "flag1.php"; highlight_file(__file__); if(isset($_GET['args'])){ $args = $_GET['args']; if(!preg_match("/^\w+$/",$args)){ die("args error!"); } eval("var_dump($$args);"); }
审计得到通过get方式传递args变量,才能执行if里面的代码,下个if的正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成,所以我们就测试php的全局变量,将其变量名传入,经测试,传入GLOBALS,可以得到flag值。
EIS{GE7_fl4g_w17h_GL0B4L}
快速计算(78Pts)
看一下题目
直接附上脚本
EIS{sdf4we5554}
php trick(82Pts)
查看源代码
审计一下发现是变量覆盖
对flag进行凯撒解密
EIS{jbfuvsynt}
随机数(108Pts)
多次刷新发现,数字范围是1000以内,写个1-1000的字典,然后放到burp中intruder。
EIS{brute_forc3_th3_r4nd0m_s33d}
不是管理员也能login(103Pts)
原题目中说明了题目会有提示,那我们先找找。
一个是在网站的说明与帮助中
好的,他告诉了我们网站的用户名,md5后的test必须为零,这个很简单,让我们想到了php弱类型,比如QNKCDZO等。
然后,在源代码中发现了第二个hint
看到unserialize我们知道是php反序列化
附上脚本
然后放服务器运行一下
得到反序列化后的password a:2:{s:4:"name";b:1;s:3:"pwd";b:1;}
登陆拿到flag
EIS{Smi1E_on_YouR_face_And_in_y0ur_heart}
PHP是最好的语言(125Pts)
这道题真的很折磨人。
在对原网站进行各种扫描截断无果后,在队友的努力下找到.bak源码泄露,访问index.php.bak得到源码,而后对其审计。
又看到了unserialize,好的,又是反序列化。
继续往下看,要求foo值里面要有一个param1,它要比2017大而且不能是纯数字,赋值为2018a即可,这里用到了PHP弱类型的一个特性,当一个整形和一个其他类型行比较的时候,会先把其他类型intval再比。
第二个是param2,要求其是一个长度为5的数组且第一个值也为数组,而且还有存在“nudt”,利用第一个”nudt”字符串与0弱类型比较相等,就可以绕过:“param2”:[[1],2,3,4,0]
然后我们对其反序列化,附上脚本。
运行一下得到foo的值a:2:{s:6:"param1";s:5:"2018a";s:6:"param2";a:5:{i:0;a:1:{i:0;i:1;}i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:0;}}
然后继续往下看,要求egg参数的egg[0]=MyAns,由于eregi需要截断所以要用%00截断,所以egg[0]=%00MyAns。
最后,egg[1]与fish相比不相等就行
附上最后的payload。
http://202.112.26.124:8080/95fe19724cc6084f08366340c848b791/index.php?foo=a:2:{s:6:"param1";s:5:"2018a";s:6:"param2";a:5:{i:0;a:1:{i:0;i:1;}i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:0;}}&egg[0]=%00MyAns&egg[1][]=1111&fish=1
EIS{php_th3_b45t_l4ngu4g3}
OK.
- EIS2017-几道简单的WEB题的WP
- 简单的sql注入WP
- 简单的sql注入之2WP
- 编写简单web服务的几篇文章
- web开发的几道笔试题
- 简单的几道算法题_AboutDP
- poj 几道简单的dp题
- poj 几道简单的二分题
- 实验吧简单的sql注入之3WP
- WordPress中简单的wp-config.php配置
- 几种web矢量的简单性能比较(1)
- 几种web矢量图形的简单性能比较(2)
- 几种web矢量图形的简单性能比较(3)
- Swift几种简单的Web数据通讯方式
- 几种web服务器端推送技术的简单介绍
- WP的好书
- wp的progressDialog
- wp 遇到的错误
- Java基础——Java多线程中sleep()、wait()和notify()
- Android 如何设置状态栏颜色和标题栏颜色一致
- HttpURLConnection的get和post请求实例
- 游戏美术的的各种风格参考
- adb环境搭建问题error: cannot connect to daemon
- EIS2017-几道简单的WEB题的WP
- 原型模式
- Spket在Eclipse下的安装和配置(图文教程)
- js常用的工具方法总结
- 2017-10-30 & 2017-10-31 集训总结
- okhttp3 源码分析
- rem和em的区别
- Spring中的后置处理器BeanPostProcessor讲解
- iOS打包缩小包体积