安全矩阵

 找回密码
 立即注册
搜索
查看: 422|回复: 0

怎么发现一些隐藏的功能/接口/字段

[复制链接]

251

主题

270

帖子

1783

积分

金牌会员

Rank: 6Rank: 6

积分
1783
发表于 2023-1-11 19:28:47 | 显示全部楼层 |阅读模式
转载于: Richardo1o1 迪哥讲事 2023-01-11 11:27 发表于江苏

怎么发现一些隐藏的功能/接口/字段
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

前言

主要分享一些发现隐藏字段/功能/接口的方法。

方法1

在web开发(尤其是前端开发)中,经常有一些输入字段是在网页中是隐藏的,这里有多种方法可以隐藏输入字段:

1.input标签有一个比较特别的属性叫做hidden:
  1. <input type="hidden" value=""></input>
复制代码


如果在<input>标签内调用属性之前的值,则可以绕过type=”hidden” 。即
  1. <input name=”xyz” value=”somevalue” type=”hidden”>
复制代码


除此之外:
可以通过插入另一个类型属性作为type=”text”来绕过,即<input name=”xyz” value=”somevalue” type=”text” type=”hidden”>

2.将<input>标签放在另一个元素中并将其样式设置为display:none
  1. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><div style=”display:none”></span>
  2. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><input type=”text” value=”somevalue”></span>
  3. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"></div></span>
复制代码


绕过的方式:
  1. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><div style=”display:none”></span>
  2. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><input type=”text” value=”somevalue” pattern=”somethingelse” oninvalid=”alert(document.cookie)”></span>
  3. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"></div></span>
复制代码


主要利用pattern 属性,此属性用于比较值和模式,它与 if 条件相同,如果模式匹配并且有效则执行;
其他操作如果无效则执行其他操作.

3.将<input>标签样式设置为:visibility:hidden
  1. <input type="text" value="" style="visibility:hidden"></input>
复制代码


4.将<input>标签样式设置为width:0;height:0;
  1. <input type="text" value="" style="width:0;height:0;"></input>
复制代码

以上主要是碰到表单/input标签的时候需要多加留意

方法2
使用一些自动化工具:

Arjun:
  1. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">pip3 install arjun    安装Arjun</span>
  2. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">arjun -i subdomains.txt -m GET -oT param.txt   针对多个目标</span>
  3. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">arjun -u target.com -m GET -oT param.txt   针对单个目标</span>
  4. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">[-m ] 参数方法</span>
  5. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">[-oT] 文本格式输出 # arjun -h 可以看到更多选项</span>
复制代码


ParamSpider:
  1. $ python3 paramspider.py --domain bugcrowd.com --exclude woff,css,js,png,svg,php,jpg --output bugcrowd.txt
复制代码


方法3

查找javascript文件中隐藏的GET参数:

这里主要通过分析javascript文件来寻找隐藏参数
  • 搜集javascript文件中的变量名,例如: var test = "xxx"
  • 尝试将每⼀个都作为GET参数,以发现隐藏的参数,例如:https://example.com/?test="xsstest

有人做了一个单行代码⽣生成器,它可以找到所有的变量名,并将其作为参数追加
  1. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">assetfinder example.com | gau | egrep -v</span>
  2. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">'(.css|.png|.jpeg|.jpg|.svg|.gif|.wolf)' | while read url; do vars=$(curl -s</span>
  3. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">$url | grep -Eo "var [a-zA-Z0-9]+" | sed -e 's,'var','"$url"?',g' -e 's/ //g' |</span>
  4. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">grep -v '.js' | sed 's/.*/&=xss/g'); echo -e "\e[1;33m$url\n\e[1;32m$vars";</span>
  5. <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">done</span>
复制代码

往期回顾参考
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 20:40 , Processed in 0.014462 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表