数据库注入漏洞【续】

原创 2004年07月29日 13:50:00

本来这样的问题,不值得这样在次重复!没有最坚硬的盾也没有最锋利的矛,主要还是看对该问题的理解和认识上的程度,说来说去,还不是对那几个函数的使用和理解情况而已.(水平低劣不敢多说!呵!)

今天再次看了布丁BLOG上的相关函数,准备找些资料在仔细看看,在说点什么.但是看来看去还是那几篇文章,对于注入的问题.我没太在意过,只是把我自己想到的理个头绪,放在这里慢慢看看在说!

大家都只是对半角的单引号(英文状态下)做处理,我是见得最多的情况,有用是肯定的了,就是网上到处说的OR漏洞可以做到弥补.这个应该算了"逻辑"的问题.(我自己的说法)

另外接下来就是对QueryString值(一般是数字,我说的是常见情况)做判断处理,也是有用的处理.特别是大家习惯的新闻程序之类. Estyle(靳田) 说的:1、如果是排除法防注入,那么应该重点处理符号而非字母字符串。因为可用性应该放在首位,我们不能要求用户Lumida改名字是不是? 这的确是个问题,能够有通用的方法的确是最理想的了.而我说的那个函数只是对单个QueryString的处理,特别是数字的处理,这样一来,是非常必要的!因为MID函数对于猜解时候非常有用!比较麻烦的事情!2、除了非法字符串以外,我们还应该考虑比如过长字符串在内的一些另类情况,所以用正则表达式(编写理想的数据形式模式)进行主动验证要比被动的过滤法方便一些(引入的问题是无法容错); 非常赞同!我不知道别人是怎样做的.我实在对正则不熟悉(不怕见笑!汗,只能够在努力了!)这个问题我看布丁BLOG上的函数:

'####
'##
'## SQL注入攻击预防装置[字符型]
'##
'## @ data  ->处理的数据
'## @ length ->长度限制
'##
'## 例: strSql("SQL字符型数据",50)
'##
function strSql(data,length)
'########################################################################
 if length<>0 then data=left(data,length)
 strSql="'"&replace(data,"'","''")&"'"
end function

是对接收的数据做50的处理,其实看情况也是可行的方法.只是觉得这样一来也是麻烦,函数能够做到通用是好事情不是?!呵!具体问题具体分析,这样做还是有点大胆了点,50已经是好长了!呵!!我的做法是---<%
if len(request.querystring("ddd"))> 8 then
response.write("黑我,少来!")
response.end   %>

只是每次都要判断一下,手写多了点!蠢是蠢主要自己清楚那里可以被注入就这样处理应该是可行的(我到现在还是这样认为的,如果谁有高见,不妨指教一下,我一定虚心听取).8的长度可以再长点也没问题.接下来做点处理.把那些能够在注入能够用到的东西全部CUT了!呵!

----<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function

end if

checkStr=replace(str," ","")

checkStr=replace(str,"'","'")

checkStr=replace(str,";","'")

checkStr=replace(str,"--","'")

checkStr=replace(str,"(","'")

checkStr=replace(str,"[","'")

checkStr=replace(str,"$","'")

end function

%>

我想就足够了!我上文说的那几个纯属有点玩笑,但是也是一种想法而已罢了!!

---<%
Function checkStr(str)

if isnull(str) then

checkStr = ""

exit function

end if

checkStr=replace(str," ","")

checkStr=replace(str,"'","'")

checkStr=replace(str,";","'")

checkStr=replace(str,"--","'")

checkStr=replace(str,"(","'")

checkStr=replace(str,"[","'")

checkStr=replace(str,"$","'")

checkStr=replace(str,"asc'," ")

checkStr=replace(str,"mid"," ")

checkStr=replace(str,"delete"," ")

checkStr=replace(str,"drop"," ")


end function

%>

这样一来,就是有注入点,也是没办法了!因为我觉得至少在URL地址栏里要操作我的数据库已经非常难了(在说一次,只是想法,使用上具体情况灵活使用了)!

另外,如果对于注入猜解密码数据库字段成功后,对于WEB程序员来讲还有其它招数.我的想法是对用户密码做MD5处理后在入库,特别是重要的信息部分.话说开了就越来越多.

猜解设置的字典,我看很多人,特别是做数据库设计的人都知道大家都喜欢用:

username
user
name
u_name
administrators
userid
adminuser
adminpass
adminname
user_name
admin_name
usr_n
usr
dw
nc
uid
admin
admin_user
admin_username
user_admin
adminusername
pwd

自己看看,是不是都喜欢这样用,我不是说所有的人,反正我至少习惯用里面某个字段是真的,想想都得改这个习惯,最好数据库名字设置特殊一些比较好就是!还有字段名称设置也是复杂一些好!至于有多复杂自己想个自己记得住的差不多就行了,就是地球绕一圈回来也可以!呵!因为我是用过一些猜解工具,呵!!但是没试过别人的站点,其实也就是拿来做自己程序的检测罢了!呵!!所以列这些内容,另外还要注意这样的问题,就是对管理入口要设置得复杂一些(哎!我怎么又说"复杂一些"了~^)^~)

admin
admin_index
admin_admin
index_admin
admin/index
admin/default
admin/manage
admin/login
../admin/index
../admin/default
../admin/manage
../admin/login
manage
login
manage_index
index_manage
wocaonima
admin1
admin_login
login_admin
ad_login
ad_manage
count
login
manage
manager
guanli
denglu
houtai
houtaiguanli
htgl
adminlogin
adminuserlogin
admin_login
adm_login
chklogin
chkadmin
user
users
adduser
adminuser
admin_user
edituser
adduser
adminadduser
member
members
editmember
adminmember
addmember
logout
exit
login_out
edit
adminedit
admin_edit
delete
admindelete
admin_delete
del
admindel
admin_del
up
upload
upfile
backup
config
test
webmaster
root
aadmin
admintab
admin_main
main
art
article
databases
database
db
dbase
devel
file
files
forum
girl
girls
htdocs
htdocs
idea
ideas
include
includeinc
includes
incoming
install
manual
misc
mrtg
private
program
programming
programs
public
secret
secrets
server_stats
server-info
server-status
set
setting
setup
***
snmp
source
sources
sql
stat
statistics
Stats
stats
telephone
temp
temporary
tool
tools
usage
weblog
weblogs
webstats
work
wstats
wwwlog
wwwstats
www
wenzhang

这些都是字典文件.都看看用到了没!?呵!!看着后怕,我是!

布丁说的为什么老有人举ASCII码的问题,补充一下还是因为有大部分WEB程序员还是仅对半角引号和数字做判断,这里针对数字判断来说,当然这样了!

-14367-15895-10284-11319-19004-10780-10519

轻灵自由的珍珠

3 97 100 109 105 110

admin

45

-

是ASCII码!!

如果是这样写的:

if IsNumeric(request.querystring("ddd")) then

Execute("select * from [table]")

不是一样都绕过去了的说!说了很多烂得不能在烂的废话,一来我也没仔细研究过注入,二来在CSDN的WEB版这个话题,一个叫"小竹"的牛人是最有发言权的!我不敢造次!而且我接手WEB开发时间也不算长,经验就更少了!算是自娱自乐!!如果谁有更高明的做法,请留言.一起学习下!

************************************************************

原文在:http://blog.csdn.net/qunluo/archive/2004/07/24/50782.aspx

布丁的那篇在:http://blog.csdn.net/oyiboy/archive/2004/07/29/55030.aspx

***************************************************************

手动漏洞挖掘-SQL注入小谈

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 服务器端程序将用户输入参数做为查询条件,直接拼接SQL语句,并将查询...
  • qq_33936481
  • qq_33936481
  • 2016年04月25日 20:53
  • 2544

实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站

发表在 技术技巧 | 7条评论 前几天微软skype的官方博客网站被黑客突破,虽然很快进行了修复,但从网友截屏的图片来看,应该一些抗议美国国安局监听行为和反对微软在软件里隐藏后门的黑客所为。...
  • luyuncsd123
  • luyuncsd123
  • 2014年01月05日 01:14
  • 2335

三、servlet防止sql注入漏洞

一、经常出现漏洞的sql语句 用户名和密码 一起同时查询。select * from users where username=‘abc’ and passwd=‘123’ or 1=‘1’ 二、正确...
  • tianyejun6
  • tianyejun6
  • 2016年12月31日 15:59
  • 569

mysql注入漏洞手注

mysql: 报错注入: 以http://www.hexie.com/main/articleDetail.php?id=757 为例子: http://www.hexie.com/main/arti...
  • niexinming
  • niexinming
  • 2015年09月29日 19:28
  • 2901

ECSHOP全版本注入漏洞分析

初学PHP,看了两天语法,找了ecshop全版本注入漏洞来分析,以小菜的角度沿着大牛的思路来前进,有代码审计的大牛看到就请笑一笑就够了, 当然如果有错误之处,请指教!!! ECSHOP全版本注...
  • zhangfeng1133
  • zhangfeng1133
  • 2016年11月25日 22:46
  • 1854

注入漏洞检测关键字

个人从网上和一些教程钟归纳了一些批量搜索注入点的关键字,分享给大家使用,    内容不多,但实用性还是蛮强的,保证能找到注入点,但是有些MD5加密之后不能解开,那也没有办法。有些关键字还可以扩展,寻...
  • dongjunhua
  • dongjunhua
  • 2013年03月01日 22:38
  • 12399

代码注入漏洞以及修复方法

PHP代码执行漏洞指应用程序本身过滤不严格,用户可以通过请求将代码注入到程序中执行,类似于SQL注入漏洞,可以把SQL语句通过网页注入到SQL服务执行,而PHP代码执行漏洞则是可以把代码注入应用到网站...
  • pygain
  • pygain
  • 2016年10月12日 17:32
  • 1902

挖洞姿势:浅析命令注入漏洞

命令注入是一种常见的漏洞形态。一旦存在命令注入漏洞,攻击者就可以在目标系统执行任意命令。说到这里,我们不得不提另外一个叫做远程代码执行(RCE)的漏洞——许多人总会把这两个漏洞混淆,其实它们是有本质的...
  • qq_27446553
  • qq_27446553
  • 2017年07月13日 19:00
  • 1069

CI框架中的SQL注入隐患

0x00 在CI框架中,获取get和post参数是使用了$this->input类中的get和post方法。 其中,如果get和post方法的第二个参数为true,则对输入的参数进行XSS过滤,注意只...
  • u011721501
  • u011721501
  • 2015年03月31日 23:14
  • 4729

解析PHP对象注入漏洞

 0、前言 逛乌云知识库的时候看到一篇有趣的译文:http://drops.wooyun.org/papers/4820。 说的是一种注入方式,叫对象注入。对象也能注入? 是的,只要是存在...
  • u011721501
  • u011721501
  • 2015年02月03日 22:10
  • 1868
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据库注入漏洞【续】
举报原因:
原因补充:

(最多只允许输入30个字)