zoukankan      html  css  js  c++  java
  • 字符型注入

    在天上飘了有段时间了得沉淀一下,我用的是sql_libs靶场

    重新系统化学习一下手工注入(虽然有SQLmap一把梭)

    核心纲要(b站视频https://www.bilibili.com/video/av77851975?p=4

    一.字符型注入(less-4)

     id = 1时

     id=2时

    可见这参数我们可控

    下面就是让他报错,双引号 让他报错

     可以看见我们的参数是被双引号包裹

     加一个#把后面那个双引号注释掉,依旧报错

     因为报错后面有个单括号所以我们除了要注释引号还得闭合单括号,为了让语句闭合 才能执行 (#号 url编码之后就是%23)也可以用--+

    用order by 猜查询出当前数据库的列数,这里拓展一下https://segmentfault.com/a/1190000002655427

     然后select123

     于是就可以查询当前数据库

     知道数据库 我们就查一下当前是数据库的表,表就是table_name,所有的表就是group-concat(),从哪里查呢 从information_schema.tables ,限定条件就是我们当前数据库

    因为我们只需要查询当前数据库的表就行了所以 where table_schema = database()

     我们现在再来看一下 emails表column里面有哪些字段(列数)

    只要把table改为column,另外加上新的限定条件,where table_schema = database() and table_name = 'emails'

    所以就是这样select 1,group_concat(column_name),3 from information_schema.columns where table_schema = database() and table_name = 'emails' %23

     现在我们知道这个表里面的字段(列数),我们就来看看字段里面的值只需要把group_concat(column_name)改为group_concat(concat_ws(':',id,email_id))

    from 后面也得改掉 改为from emails

     可以看见已经拿到用户名和id了

  • 相关阅读:
    实现JSON数据的存储和读取
    MediaPlayer类——播放视频和音乐
    网络编程浅析
    线程浅析
    I/O浅析
    fragment之间的信息交互——onActivityResult()不经过Activity
    命名规则
    String方法(一)
    面试小结
    找工作中......
  • 原文地址:https://www.cnblogs.com/cat47/p/12483626.html
Copyright © 2011-2022 走看看