第二十八天:WEB攻防-通用漏洞&SQL注入&HTTP头XFF&COOKIE&POST请求

文章探讨了SQL注入的原理,指出它发生在源码与数据库交互时未对用户输入数据进行过滤。除了常见的URL参数(GET)注入,还详细说明了POST请求、HTTP头(如User-Agent和Cookie)、IP地址等不同方式的注入点。文中以PHP、JavaSpring和Python为例,展示了各种语言如何接收和处理这些数据,并提醒开发者注意过滤不严可能导致的SQL注入风险。此外,文章提到了自动化工具sqlmap的使用方法,以及在利用该工具时可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提交方式注入 - get post cookie http头等
出现不同提交方式的原因:数据大小,类型,功能
SQL注入的原理是在于 源码与数据库交互的时候未对用户输入的数据进行过滤,所以我们常规的可见的注入点往往就是在url上 例如 :http://127.0.0.1/index.php?id=1 的id参数处存在sql注入。

常见payload http://127.0.0.1/index.php?id=1 union select database()–+

但是我们往往还有其他的注入点容易被忽略

不同接收方式产生的注入

POST注入方式及其他提交方式产生的注入
常常我们在登录框进行登录的时候,就是采用的POST的提交方式,常规url还是

http://127.0.0.1/login.php但是当我们把数据包抓取下来时,往往可以看到我们提交的数据包为POST的请求数据包,在最下面的数据处会存在 user=admin&pass=password的参数进行传递

这个时候我们对下面提交的user和pass值进行注入也是可以的。

在PHP中还有其他的接受参数的方法,常见应用点在 接受UA头判断是什么设备访问,接受IP值。判断是哪个IP地址在访问:如登录框判断一个IP地址的登录失败次数。接受cookie判断购买或操作是谁

PHP中接受其他访问的数据常见代码如下
在这里插入图片描述
这些接受数据的地方如果和数据库产生交互且过滤不严谨都是可能存在sql注入的

部分语言接受代码块

<?php header("Content-Type: text/html; charset=utf-8"); $get=$_GET['g']; $post=$_POST['p']; $cookie=$_COOKIE['c']; $request=$_REQUEST['r']; $host=$_SERVER['HTTP_HOST']; $user_agent=$_SERVER["HTTP_USER_AGENT"]; $ip=$_SERVER["HTTP_X_FORWARDED_FOR"]; echo$get."
"; echo$post."
"; echo$cookie."
"; echo$request."
"; echo$host."
"; echo$user_agent."
"; echo$ip; ?>

Java Spring 不同框架,不同写法
method=RequestMethod.GET

method=RequestMethod.POST

request.getParameter(“参数名”);

可以直接获取get请求的参数key对应的value

也可以从请求体中获取参数的key对应的value

Python flask 不同框架,不同写法
requests.get

requests.post

request.args.get(key)

request.form.get(key)

request.values.get(key)

sqlmap的使用

常见的且好用的方法就是 抓个其他方式的请求包 直接

python sqlmap.py -r 1.txt 在有注入的参数处加上星号就可以了

或者 Python sqlmap.py -u “http://127.0.0.1/login.php” --data “username=xxx&pass=password”

这种命令也是可以的 但是不推荐,因为使用 -u参数的时候 sqlmap发送出去的数据包可能会少很多原装的参数。有时候缺少部分参数会无法访问站点 或者误判等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值