zoukankan      html  css  js  c++  java
  • 学习SQL注入---1

    开始接触SQL注入了,最开始根据网上的思路做了两道注入的题,但对于SQL注入如何实现,怎么一个流程还是不理解。后来,在网上查找了很多资料,现在一点点去理解。

    1、利用sqlmap注入的时候,不是所有页面都可以。比如:http://www.xxx.com/这样的页面没办法实现注入,只有类似于:http://www.xxx.com/id=1,需要去数据库中查询的页面才会存在sql注入的漏洞。

    2、对于上述的登录页面,假如用户名:admin,密码:123456,正常情况下知道了用户名、密码才能登陆进去,但如果登录的时候,用户名:'or 1=1--,密码123,也可以登录进去,为什么?原因:有的数据库查询语句会从web页面获得数据,然后去数据库比对,这样就有了可利用的地方。

    select * from users(数据表) where username='username(用户从页面输入的用户名)' and password='password(用户从页面输入的密码)';

    就会变成 select *from users where username=''or 1=1--' and password='123'

    因为#和--都属于注释符,那么语句真正执行的时候,--' and password='123',就会被注释掉,语句变成了 select *from users where username=''or 1=1,1=1为TRUE,所以语句为真。

    这样就绕过了用户名和密码。

    3、接下来学习:SQL注入,如何判断存在注入点。

  • 相关阅读:
    【转】IOC和工厂模式联合使用简化工厂模式
    2014年12月24日
    【转】使用java程序模拟页面发送http的post请求
    2014年12月5日
    JAVA的double值去掉"E"
    多表联接查询解析
    Struts从后台向前台传递数据
    prepareCall()执行存储过程
    PreparedStatement
    C++ 中的new和delete理解与实操应用
  • 原文地址:https://www.cnblogs.com/newblack/p/11683432.html
Copyright © 2011-2022 走看看