学习笔记 HTTP参数污染注入

HTTP参数污染注入源于网站对于提交的相同的参数的不同处理方式导致。

例如:

www.XX.com/a?key=ab&key=3

如果服务端返回输入key的值,可能会有

一: ab

二:3

三:ad3

这三种不同的方式。

具体服务端处理方式如下:


Web服务器


参数获取函数


获取到的参数


PHP/Apache


$_GET(“par”)


Last


JSP/Tomcat


Request.getParameter(“par”)


First


Perl(CGI)/Apache


Param(“par”)


First


Python/Apache


Getvalue(“par”)


All(List)


ASP/IIS


Request.QueryString(“par”)


All(comma-delimited string)

假设输入www.xx.com/a?key=select&key=1,2,3,4 from table

服务端有可能会将key处理为select 1,2,3,4 from table,从而导致SQL注入。

时间: 2024-10-10 02:54:01

学习笔记 HTTP参数污染注入的相关文章

渗透学习笔记--基础篇--sql注入(字符型)

环境:dvwa1.7数据库:mysql前置知识:sql语句(Click me)      在进行sql注入前,我们先熟悉熟悉select语句.一.打开我们的sql终端 二.进入之后可以看到有mysql>我们输入sql语句,即可返回我们想要的结果,注意分号哟!我们使用的dvwa,在我们前几章设置的时候,会在数据库中生成一个dvwa的database:这里我们使用它来进行我们的select 语句:(1)使用dvwa数据库use dvwa;(2)在users表里查询用户名为'admin'的所有信息se

Swift学习笔记(二)参数类型

关于参数类型,在以前的编程过程中,很多时间都忽视了形参与实参的区别.通过这两天的学习,算是捡回了漏掉的知识. 在swift中,参数有形参和实参之分,形参即只能在函数内部调用的参数,默认是不能修改的,如果想要修改就需要在参数前添加var声明. 但这样的声明过后,仍旧不会改变实参的值,这样就要用到inout了,传递给inout的参数类型必须是var类型的,不能是let类型或者字面类型,(字面类型是在swift中常提的一个术语,个人认为就是赋值语句,也不能修改)而且在传递过程中,要用传值符号"&

Dubbo -- 系统学习 笔记 -- 示例 -- 参数验证

Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 参数验证 参数验证功能是基于JSR303实现的,用户只需标识JSR303标准的验证Annotation,并通过声明filter来实现验证. 2.1.0以上版本支持 验证方式可扩展,参见:Validation扩展点 参数标注示例: import java.io.Serializable; import java.util.Date;   import javax.validatio

【安全牛学习笔记】SQLMAP自动注入-ENUMERATION、BRUTE FORCE、UDF IN

伪静态页面不能注入,这是错误的! SQLMAP自动注入08-----ENUMERATION --current-user --current-db --hostname --users --privileges -U username (CU当前账号) --roles --dbs --tables,--exclude-sysdbs -D dvwa -T user -D dvwa -C user --columns [email protected]:~# sqlmap -u "http://19

【安全牛学习笔记】SQLMAP自动注入-INHECTION、DETECTION、TECHNIQUES

SQLMAP自动注入04-----INJECTION -p 指定扫描的参数,使--level失效 -p "user-agent,referer" --skip 排除指定的扫描参数 --level=5 --skip="id,user-agent" URI注入点 sqlmap -u "http://targeturl/param1/value1*/param2/value2/" [email protected]:~# sqlmap -u "

【安全牛学习笔记】SQLMAP自动注入(二)

SQLMAP自动注入(二)-REQUEST和SQLMAP自动注入(三)-OPTIMIZATION SQLMAP自动注入02-----REQUEST --delay 每次http(s)请求之间延迟时间,浮点数,单位为秒,默认无延迟 --timeout 请求超时时间,浮点数,默认为30秒 --retries http(s)连接超时重试次数,默认3次 --randomize 长度.类型与原始值保持一致的前提下,指定每次请求随机取值的参数名 SQLMAP自动注入02-----REQUEST --scop

渗透学习笔记--基础篇--sql注入(数字型)

环境:dvwa 1.7数据库:mysql dvwa的安全等级:medium 一.分析和查找注入点(1)知识点回顾如果上一篇有好好读过的同学应该知道,我们上一篇遇到的字符型注入.也即是通过Get或者Post方式传进去的数据被单引号或者双引号包裹住.如果我们想要注入自己的payload(有效载荷)的话,则我们必须先闭合前面的单引号或者双引号,否则我们的数据始终会被当做成字符串来处理. 这种类型的注入点称为字符型注入点. (2)这次我们的把防御等级提升了一个层次,来逐步加强我们手工注入的能力以及开更多

【ASP.NET MVC 学习笔记】- 04 依赖注入(DI)

本文参考:http://www.cnblogs.com/willick/p/3223042.html 1.在一个类内部,不通过创建对象的实例而能够获得某个实现了公开接口的对象的引用.这种"需要",就称为依赖注入(Dependency Injection). 2.依赖注入和和所谓的控制反转(Inversion of Control )是一个意思. 3.依赖注入是通过接口实现松耦合的设计模式,是解耦的重要手段. 4.依赖注入分为两步:移除对组件的依赖:通过类的构造器(或setter访问器)

【ASP.NET MVC 学习笔记】- 05 依赖注入工具Ninject

本文参考:http://www.cnblogs.com/willick/p/3223042.html 1.Ninject是一款轻量级的DI工具,可通过VS的插件NuGet将其引用到项目中. 2.使用Ninject的步骤: 创建一个Ninject的内核对象 //创建Ninject内核实例 IKernel ninjectKernel = new StandardKernel(); 把公开接口绑定到一个实现了该接口的类上 //绑定接口到实现了该接口的类.这种绑定告诉Ninject,当接收到一个请求IV