cookie注入讲解

我们首先还是来看看中网景论坛的最新版本"(CNKBBS2007)中网景论坛2007v5.0 "官方下载地址" http://www.cnetking.com/websys2.asp?id=26"发布时间是2007-06-06,打开系统的源代码后,在"user_RxMsg_detail.asp"文件中,有如下代码:

<!--#include file="opendb.asp" -->
(调用opendb.asp文件)
<!--#include file="char.asp" -->
<%
Call CheckUserLogin(username)
Dim action,s,id
id=request("id") (获取客户提交的变量,并赋值给id,并没过滤,也没有指定采用那种方式提交)
if id<>"" then Call IsNum(bid) (这是程序员的出现地方,注意bid<>id)
conn.execute("update cnk_Users_RxMsg set readed=1 where id="&id) '设置已读
rs.open "select * from cnk_users_RxMsg where id="&id,conn,1,3

我们再打开"opendb.asp"文件

<%Option Explicit
Response.Buffer = true%>
<!--#include file="fzr.asp" --> (调用fzr.asp文件)
<!--#include file="cnkdata/dbname.asp" -->
<!--#include file="config.asp"-->
..................


以现它是连接数据库的文件,其中调用了fzr.asp文件,我们再打开fzr.asp文件


<%
'--------版权说明------------------
'SQL通用防注入程序
'Aseanleung
'--------定义部份------------------
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
Dim fso1,all_tree2,file1,files,filez,fs1,zruserip
If Request.QueryString<>"" Then (对Request.QueryString提交(客户采用GET方式提交)的数据进行判断,并没有指明对其它方式提交的数据进行判断)
'自定义需要过滤的字串,用 "|" 分隔
Fy_In = "'|;|%|*|and|exec|insert|select|delete|update|count|chr|mid|master|truncate|char|declare|script" (阻止了常用的SQL注入的语句)
Fy_Inf = split(Fy_In,"|")
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
zruserip=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If zruserip="" Then zruserip=Request.ServerVariables("REMOTE_ADDR")
Response.Write "内容含有非法字符!请不要有'或and或or等字符,请去掉这些字符再发!!<br>"
Response.Write "如是要攻击网站,系统记录了你的操作↓<br>"
Response.Write "操作IP:"&zruserip&"<br>"
Response.Write "操作时间:"&Now&"<br>"
Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"
Response.Write "提交方式:GET<br>"
Response.Write "提交参数:"&Fy_Get&"<br>"
Response.Write "提交数据:"&Request.QueryString(Fy_Get)
......................

很明显的看出它是一个SQL通用防注入程序文件,(以上的红字是对代码的解释)

代码看好了,我们来整理下思路:由于程序员的出错,导致了id没有被过滤就被带到SQL语句中查询,这是注入漏洞产生的原因,虽然程序引入了防注入程序,阻止了常用的SQL语句使用,但只对客户采用GET方式提交的数据进行判断,而没有对其它方式提交的数据进行判断,这样导致了客户可以使用Request.cookie方式来提交变量的值,而绕过了SQL防注入程序(总结下:cookie注入产生的条件:系统直接使用"request("name")"获取客户提交的数据,并对客户提交的变量没有过滤,而且在防注入程序中没有限制Request.cookie,现在防注入程序3.0只是对客户采用GET和POST提交方式进行了限制).

转载于:https://www.cnblogs.com/wangluochong/p/3405262.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sigprocmask 阻塞进程

本系列文章由muge0913编写&#xff0c;转载请注明出处&#xff1a;http://blog.csdn.net/muge0913/article/details/7334771 1、有时候不希望在接到信号时就立即停止当前执行&#xff0c;去处理信号&#xff0c;同时也不希望忽略该信号&#xff0c;而是延时一段时间去调用信号处…

python ftp 设置代理_用Python搭建一个简单的代理池

def get_user_agent():随机获取一个用户代理user_agents["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET …

C++变量命名规则

浅谈C变量命名规则 不知道别的公司如何&#xff0c;反正我现在的公司对变量命名并没有一定的规范&#xff0c;唯一要求就是能简单易懂&#xff0c;但是&#xff0c;我想&#xff0c;这个多个程序员&#xff0c;大概每个人都有自己习惯的一套 命名规则吧&#xff0c;不过&#…

JavaScript中奇妙的replace

1、发现问题&#xff1a; 今天在读require.js源代码时&#xff0c;不经意读到这么一段代码&#xff1a; 1 //If no name, and callback is a function, then figure out if it a2 //CommonJS thing with dependencies.3 if (!deps && isFunction(callback)) {4 dep…

python3 x和python2 x区别_Python知识:Python 3.x和2.x版本的使用区别

使用Python时都需要安装相应的版本&#xff0c;不同的版本适用性也不一样。今天从除法算子、打印功能、Unicode、Xrange、错误处理、未来模块方面看看Python2.x和Python3.x之间的区别。除法算子在移植代码或在python2.x中执行python3.x代码时&#xff0c;要注意整数除法的更改&…

select EINTR

实验环境&#xff1a;ubuntuKylin 13.10 在程序里同时有select和定时器&#xff0c; select 会被定时器产生的EINTR中断 在定时器的设置中增加了SA_RESTART和sigprocmask&#xff0c;发现都不管用 只能自己判断EINTR来重启select了。 在select被EINTR中断时&#xff0c;我输…

移除首页-重回首页

之前发布了一篇文章《订餐系统之获取淘宝外卖订单》&#xff0c;因为是关于淘宝外卖的&#xff0c;所以文中出现这个词时&#xff0c;都加了链接&#xff0c;还设置了 target_blank,就是为了让看的人方便点击&#xff0c;查看。后来&#xff0c;博客园说这个文章中含有推广链接…

sap客户信贷_信贷控制,FD32的销售值不会变化,只有应收总额的变化

请去检查 行项目类型的设定.里面有个栏位 Credit active , 我基本可以确定这里没有勾上才会出现你的问题.ID: Item with active credit function / relevant for creditSpecifies whether the credit management functions (credit checks and update statistics) for order, d…

Scrum之 Sprint计划会议

在sprint第一天召开sprint计划会议&#xff0c;这个会议分为两部分&#xff0c;计划会议1由PO、SM和Team参加&#xff0c;主要是从产品backlog中挑选出需要放到当前sprint下的既定产品backlog&#xff0c;然后由SM、Team参加计划会议2&#xff0c;把既定产品backlog的故事拆分成…

树莓派dht11 python_树莓派使用DHT11温湿度传感器

使用wiringpi编写C程序&#xff1a;如下程序借鉴了网上一老外的程序&#xff0c;忘了原帖地址在哪。#include #include #include #include #define MAX_TIME 85#define DHT11PIN 7#define ATTEMPTS 5 //retry 5 times when no responseint dht11_val[5]{0,0,0,…

java 输出流_Java中输入输出流方法总结

4.如果你创建了一个文件对象,你可以使用下面的方法来获得文件的相关信息,对文件进行操作。1)文件名的操作public String getName()&#xff1b;返回文件对象名字符串&#xff0c;串空时返回nullpublic String toString()&#xff1b;返回文件名字符串public String getParent()…

Windows 8操作技巧之快捷键大全

Windows 8操作系统发布之后&#xff0c;因为其新颖的界面和对触屏友好的设计&#xff0c;使许多长期使用Windows系统的用户&#xff0c;也觉得一时难以适应&#xff0c;一些操作方式也不知道如何去实现。在Windows系统中&#xff0c;快捷键无疑是提高操作速度的杀手锏。然而&am…

Scrum之 站立例会

在sprint期间&#xff0c;每天都会通过站立例会来进行沟通&#xff0c;以下我将把会议主要内容罗列一下。&#xff08;以下会议内容来自于Scrum Checklists) 会议内容 目标 团队成员间工作进度的沟通和协调 会议准备 邀请与会者&#xff1a;团队所有成员、Scrum Master、产品负…

Java中带标签的break,continue

首先不带标签的break,continue 就不介绍了。大家平时用的最多的也就是这样的情况了。 首先Java中没有goto&#xff0c;但是可以利用带标签的break, continue来实现类似的跳转。 首先来看一个例子&#xff1a; label:for (int i 0; i < 10; i) {for (int j 0; j < 10; j…

Scrum之 回顾会议

Scrum中Sprint计划会议是最重要的事件&#xff0c;第二重要的事件就是回顾会议&#xff0c;因为这是团队做改进的最佳时机。如果没有回顾&#xff0c;就会发现团队在重犯相同的错误。在sprint的评审会议后&#xff0c;团队需要进行一次回顾会议&#xff0c;以下我将把会议主要内…

java删除换行符号_如何从Java中删除文件中的换行符?

如其他答案所述&#xff0c;您的代码主要String.replace(...)不起作用&#xff0c;因为不会更改目标字符串。(它不能 - Java字符串是不可变的&#xff01;)它实际上做的是创建一个新的String&#xff0c;其中的字符根据需要进行了更改。但是你的代码然后扔掉那个String ...这是…

C#学习之按钮点击事件

描述&#xff1a;asp.net中服务器控件Button的点击事件OnClientClick和OnClick的区别&#xff1f; 解答&#xff1a;http://www.cnblogs.com/ypfnet/archive/2012/12/24/2830771.html&#xff08;作者&#xff1a;代号小子&#xff09; 一、 二者的区别&#xff1a; OnClick是…

Scrum之 评审会议

在sprint周期最后&#xff0c;需要进行一次评审会议&#xff0c;让团队向产品负责人和利益相关者展示已完成的功能。sprint审核的大部分实践用于团队成员展示功能、回答利益相关者对展示的疑问并记录所期望的更改。评审会议可以吸引相关利益者的关注&#xff0c;让其他人了解团…

Bringing up interface eth0: Device eth0 does not seem to be presen

故障现象&#xff1a;51Testing软件测试网.M|{,lbr 51Testing软件测试网l]9H/f[w)h service network restart51Testing软件测试网l^i2t?|5zT8J-s Shutting down loopback insterface: [ OK ]51Testing软…

java的未检查异常有哪些_Java:检查异常与未检查异常

一、异常的介绍Throwable 是 Java 中所有错误和异常的超类。Java 虚拟机仅抛出属于此类(或其子类之一)的实例对象&#xff0c;或者是 throw 语句也可以抛出该对象。同样&#xff0c;catch 子句中的参数类型也只能是此类(或其子类之一)。处于编译时检查异常为目的&#xff0c;Th…