0x1函数解析

ereg():

*用指定的模式搜索一个字符串中指定的字符串,如果匹配成功返回true,否则,则返回false。

搜索字母的字符是大小写敏感的。

* 此函数存在两个漏洞:

①%00截断及遇到%00则默认为字符串的结束

②当ntf为数组时它的返回值不是FALSE

*科学计数法的表示是1e9=1000000000,e一定是小写

strpos():

*查找字符串在另一字符串中第一次出现的位置。

*例:stpos("ehfvfslnvjsdknv","ehfv")

查找ehfv在字符串中第一次出现的位置

拓展eregi():此函数与ereg()的区别在于此函数不区分大小写

0x2题目解析

题目链接:http://www.shiyanbar.com/ctf/1805

#1.查看源码:

<?php
if (isset ($_GET['password'])) {
if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
{
echo '<p>You password must be alphanumeric</p>';
}
else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
{
if (strpos ($_GET['password'], '*-*') !== FALSE)
{
die('Flag: ' . $flag);
}
else
{
echo('<p>*-* have not been found</p>');
}
}
else
{
echo '<p>Invalid password</p>';
}
}
?>

ereg():输入的password必须是大小写字母和数字

strlen():输入值必须大于999999999并且长度小于8

strops():输入的值中必须含有‘*-*’

#2.总结步骤一中的要求后,利用ereg函数的截断漏洞可以构造playload:1e9%00*-*

由于做了url编码,所以需要在url里面直接传参

得到flag

最新文章

  1. IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页
  2. 【BZOJ 1001】狼抓兔子 对偶图+SPFA
  3. docker rabbitmq
  4. MYSQL 、Oracle、SQLServer 数据库中时间的格式化输出
  5. 不容易系列之(3)—— LELE的RPG难题
  6. 简洁代码---python---string
  7. 30年的Hello world
  8. HTML5+AJAX+WEBAPI 文件上传
  9. CentOS, 高速设置ssh无password登录
  10. nginx 301跳转到带www域名方法rewrite(转)
  11. 浩哥解析MyBatis源码(八)——Type类型模块之TypeAliasRegistry(类型别名注册器)
  12. IFrame父页面和子页面的交互
  13. 纠错:基于FPGA串口发送彩色图片数据至VGA显示
  14. 如何管理Session(防止恶意共享账号)——理论篇
  15. Android View框架总结(五)View布局流程之Layout
  16. openlayers4 入门开发系列之地图导航控件篇(附源码下载)
  17. 【ybt1252】走迷宫
  18. Ax用Excel导出表的字段属性信息
  19. Windows系统java下载与安装
  20. Nginx http keepalive针对客户端行为指令

热门文章

  1. 第14章——高级IO函数
  2. MySQL时间类型datetime、bigint及timestamp的查询效率
  3. 慢话crush-各种crush组合
  4. parted会启动你的ceph osd,意外不?
  5. &#39;sortbitwise&#39;是什么意思
  6. VScode,code::blocksC语言编译运行出现不支持的16位应用程序解决方法
  7. js-根据日期获取本年所有周日
  8. Spring Cloud Security OAuth2.0 认证授权系列(一) 基础概念
  9. php批量转换时间戳
  10. mongo命令行操作