注入原理和靶场结合进行参数类型分析

举报
黑色地带(崛起) 发表于 2023/02/16 12:42:00 2023/02/16
【摘要】 注入原理和靶场结合进行参数类型分析

注入原理和靶场结合进行参数类型分析

目录

明确参数类型

数字型

字符型

第一步:

第二步:

第三步:

?id=1' and 1=1--+

搜索型

JSON型(查资料得到)

明确请求方法:

GET和POST区别:(查资料得到)

GET请求和POST请求代码分析

在url/hackbar中用GET方法提交g

通过火狐插件 HackBar 在post提交p

 明确参数类型

数字、字符、搜索、JSON等


数字型

不需要考虑用单引号等进行闭合

show databases;

use security;

show tables;

select * from users where id=1;

编辑


通过Dumb搜id的话就是字符型了,要加引号,不然会报错

 编辑




字符型

字符串本身前后自带引号进行闭合

一般需要加引号闭合前面引号,后面的引号可通过加引号闭合,也可注释掉后面内容


第一步:

?id=1

编辑

 显示正常说明为GET型字符类型



第二步:

?id=1'

编辑

加单号报错则说明符号为单引号



第三步:

?id=1' and 1=1--+

编辑

-------------->可以判断是字符型,符号为单引号 

然后再进行猜字段,注入查询数据等操作



搜索型

和模糊查询一样的原理,对于输入的字符串-------->'%字符串%'

为了完成注入,要从字符型---->注入语句,就要过滤掉引号(')和百分号(%)

 select * from users where username  like '%Du%';

编辑

闭合前面的引号后,加入注入语句,再注释掉后面的




JSON型(查资料得到)


在 JSON 中,值必须是以下数据类型之一:

字符串、数字、对象(JSON 对象)、数组、布尔、Null


字符串必须用双引号包围:

{ "name":"John" }

数字必须是整数或浮点数:

{ "age":30 }

值可以是对象:

{"employee":{ "name":"Bill Gates", "age":62, "city":"Seattle" }}

值可以是数组:

{"employees":[ "Bill", "Steve", "David" ]}

值可以是ture/false:

{ "sale":true }

值可以是null:

{ "middlename":null }

对于JSON这类参数类型

写入的注入语句常常遇见的干扰符号:’ , " ,% , ) , } 等


可能遇到到格式如下

用户={"name":" 'amiy' ","sex" :" 'girl' ",}

在postdata中输入:

json={"name"="liudehua' and 2=3 union select 1,database(),3--+"}



明确请求方法:

GET,POST请求方法

COOKIE,REQUEST,HTTP 头等

不同的请求方法,请求的数据类型或者大小不同,要考虑开发人员设定的特定的过滤机制


可以在浏览器带的开发人员工具里的网络处查看数据包信息(也可用burpsuite抓包)

编辑

编辑




GET和POST区别:(查资料得到)

(1)   在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

(2)   GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3)   安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

(4)   安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。换句话说,GET 请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过 POST 请求实现,因为在注解提交之后站点已经不同了。



GET请求和POST请求代码分析

<?php

@$g=$_GET['g'];

echo $g;


@$p=$_POST['post'];

echo $p;

?>


在url/hackbar中用GET方法提交g


(GET方法无法接收POST的值)

编辑




通过火狐插件 HackBar 在post提交p


安装hackbar,火狐2分钟解决(优选),及如何打开使用_黑色地带(崛起)的博客-CSDN博客

编辑



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。