前些天看了一个关于MYSQL注入攻击内容,现在有关问题请大家讨论一下

keaizhong 2005-04-08 09:19:56
http://www.77169.com/Article/Class5/Class12/Class20/200409/11798.html

关于这个网址里的攻击方式,本人觉得现在新版本的PHP默认状态就很难实现,因为他假设magic_quotes_gpc均为off,所以基本上来说是安全的。

还有一个原因就是他的假定条件还要知道数据表名称甚至于结构,这样子对于一个陌生的网站我们一般是不太可能知道的,所以受攻击的可能性也不大。

现在本人有一个假设,如果我所做的网站存在一个这样子的注入漏洞,当本一条语句中的WHERE后面部分全部可以自由被设置(输入的引号都合法)的时候,试问有没有可能被攻击者得到所有表名称和甚至于字段名称或者字段数?假定可以,如何实现呢?
我的条件是magic_quotes_gpc为on
...全文
196 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
keaizhong 2005-04-09
  • 打赏
  • 举报
回复
名称也要相同的。要不然出不来的,这个我试过了。
你这样子就算可行的话也只能得到库名,并没有什么利用价值。
要得到表名和数段名才有可能得到数据。
黑夜路人 2005-04-08
  • 打赏
  • 举报
回复
其实很多还是可以绕过的,安全不是觉得的。。。
fangwei1 2005-04-08
  • 打赏
  • 举报
回复
如果你的mysql支持union的话,你可以试试,你可以构造这个语句 id=-1 union select 1,database(),version(),可以得到你的数据库名
ImN1 2005-04-08
  • 打赏
  • 举报
回复
只要有一个可能,就是漏洞……

微软很多已修正的bug都是我们未经历的
fangwei1 2005-04-08
  • 打赏
  • 举报
回复
只要字段数相同就可以了,用猜的就行了,譬如对你的新闻表的话,字段数不会很多,猜测一下就行了啊
keaizhong 2005-04-08
  • 打赏
  • 举报
回复
回复人: fangwei1(杨威利) ( ) 信誉:105 2005-04-08 11:08:00 得分: 0


如果你的mysql支持union的话,你可以试试,你可以构造这个语句 id=-1 union select 1,database(),version(),可以得到你的数据库名


不明白这样子如何能得到数据库名?你根本就不知道表的字段数,我记得union要字段相同才可以用。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧