关于00截断的一些笔记

hnjzyhz   ·   发表于 2022-02-22 16:36:29   ·   学习杂记

学00截断的时候,对其中的原理是明白的,但有两个地方一直很蒙:
1.为什么会存在%00截断和0x00截断
2.为什么GET传参用的是%00截断,POST传参用的是0x00截断
3.为什么POST传参的0x00截断要从hex改,而不是直接加上”00”呢?
以下是我查询资料后的一些想法记录,若有问题,希望能有大能指正,一同学习。

00截断感觉就是0x00截断,也就是用hex编码后为0x00的值进行截断。

  • 那为什么是0x00呢?

    如图,十六进制的00在ascii编码下就是空字符(Null),move_uploaded_file函数在处理Null时就会认为“此处为空”而停止解析后面的内容。
  • 那为什么POST传参不能直接在字符串上修改为“00”,而是需要在hex里面修改呢?

    实际上原因很简单··就是因为直接改的内容是字符串“0”,而“0”的hex编码是0x30,而不是0x00!(如图,我也不知道为什么会蒙这么久)
  • 为什么GET传参用的是%00呢?
    就是因为GET传参,浏览器会将url内容进行url编码,而%00就是ascii的“Null”的url编码。 (所以说要在数据包上修改,而不是写在url上。)
    (相关验证在这里:https://blog.csdn.net/zpy1998zpy/article/details/80545408)
用户名金币积分时间理由
xiaoc 8.00 0 2022-02-23 10:10:25 一个受益终生的帖子~~

打赏我,让我更有动力~

2 条回复   |  直到 2022-2-24 | 892 次浏览

学kali的小白
发表于 2022-2-22

说白了 就是sql注入会进行一次url编码,而post注入不会

评论列表

  • 加载数据中...

编写评论内容

mirck
发表于 2022-2-24

学习了

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.