转载于: Richardo1o1 迪哥讲事 2023-01-11 11:27 发表于江苏
怎么发现一些隐藏的功能/接口/字段 声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
前言
主要分享一些发现隐藏字段/功能/接口的方法。
方法1
在web开发(尤其是前端开发)中,经常有一些输入字段是在网页中是隐藏的,这里有多种方法可以隐藏输入字段:
1.input标签有一个比较特别的属性叫做hidden: - <input type="hidden" value=""></input>
复制代码
如果在<input>标签内调用属性之前的值,则可以绕过type=”hidden” 。即 - <input name=”xyz” value=”somevalue” type=”hidden”>
复制代码
除此之外: 可以通过插入另一个类型属性作为type=”text”来绕过,即<input name=”xyz” value=”somevalue” type=”text” type=”hidden”>
2.将<input>标签放在另一个元素中并将其样式设置为display:none - <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><div style=”display:none”></span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><input type=”text” value=”somevalue”></span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"></div></span>
复制代码
绕过的方式: - <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><div style=”display:none”></span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"><input type=”text” value=”somevalue” pattern=”somethingelse” oninvalid=”alert(document.cookie)”></span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;"></div></span>
复制代码
主要利用pattern 属性,此属性用于比较值和模式,它与 if 条件相同,如果模式匹配并且有效则执行; 其他操作如果无效则执行其他操作.
3.将<input>标签样式设置为:visibility:hidden - <input type="text" value="" style="visibility:hidden"></input>
复制代码
4.将<input>标签样式设置为width:0;height:0; - <input type="text" value="" style="width:0;height:0;"></input>
复制代码
以上主要是碰到表单/input标签的时候需要多加留意
方法2使用一些自动化工具:
Arjun: - <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">pip3 install arjun 安装Arjun</span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">arjun -i subdomains.txt -m GET -oT param.txt 针对多个目标</span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">arjun -u target.com -m GET -oT param.txt 针对单个目标</span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">[-m ] 参数方法</span>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">[-oT] 文本格式输出 # arjun -h 可以看到更多选项</span>
复制代码
ParamSpider: - $ python3 paramspider.py --domain bugcrowd.com --exclude woff,css,js,png,svg,php,jpg --output bugcrowd.txt
复制代码
方法3
查找javascript文件中隐藏的GET参数:
这里主要通过分析javascript文件来寻找隐藏参数 有人做了一个单行代码⽣生成器,它可以找到所有的变量名,并将其作为参数追加 - <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">assetfinder example.com | gau | egrep -v</span>
- <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>
- <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>
- <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>
- <span role="presentation" style="box-sizing: border-box; padding-right: 0.1px;">done</span>
复制代码
往期回顾参考
|