先看sprintf用法:

定义和用法

sprintf() 函数把格式化的字符串写入变量中。

arg1arg2++ 参数将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。

注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符位于 % 符号之后,由数字和 "\$" 组成。

例子1(当占位符使用):

例子2(%2表示占位符,$s表示格式化类型):

在php格式化字符串中,%后的一个字符(除了%)会被当做字符类型,被吃掉,包括'\  所以造成了单引号逃逸。

%没有被吃掉

这样可能遇到php 警告,可以提交%1$吃掉后面的斜杠。

总结利用条件:

1、执行语句使用sprintf或者vsprintf拼接

2、执行语句进行了俩次拼接,第一次拼接的参数内容可控

参考文章:https://paper.seebug.org/386/

最新文章

  1. Web Api中的get传值和post传值
  2. 深入浅出设计模式——代理模式(Proxy Pattern)
  3. 使用 RecyclerView
  4. OpenCV源码阅读(3)---base.hpp
  5. JavaScript---网络编程(6)-Dom和Bom模型概念讲解(节点获取,window对象)
  6. npm note
  7. hdu 3874
  8. jQuery --checkbox全选和取消全选简洁高效的解决办法
  9. 学习Sass笔记之概念篇
  10. windows和linux双系统修改启动项
  11. python链接mysql以及常用语法
  12. 开源免费接口管理平台eoLinker AMS开源版 V3.2.0更新,增加批量导出导入接口功能!
  13. TortoiseGit- 创建本地新分支,提交推送到远程,本地新分支合并到工作分支,提交到远程工作分支等。
  14. java 面向对象编程。。。。
  15. P1865 A % B Problem
  16. Python中syncio和aiohttp
  17. docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
  18. Android批量验证渠道、版本号(Linux版)
  19. HTTP基础知识3
  20. session of express

热门文章

  1. 三、cent OS安装配置nginx
  2. Restful架构思想
  3. java map常用的4种遍历方法
  4. HTTP 错误500.19 - 错误代码 0x80070021
  5. libevent学习笔记 —— 第一个程序:计时器
  6. Django,ajax实现表格增删查改,Django内置分页功能。
  7. 手写堆优化dijkstra
  8. css文本内容显示省略号
  9. 转:使用VS Code断点调试PHP
  10. html基础概念