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

  • 相关阅读:
    mybatis设置select返回HashMap,字段值为null时,不会保存key
    copyProperties 忽略null值字段
    动态新增表单
    页面时时刷新数据
    FormData 传List对象集合到后台
    linux常用命令总结
    Linux部署安装JDK
    yum安装nginx
    01_Python基础
    Nginx防盗链
  • 原文地址:https://www.cnblogs.com/wosun/p/11505981.html
Copyright © 2011-2022 走看看