banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

常规测试中url参数测试

常见参数#

发现一个这样的项目top25-parameter,统计了常规漏洞的一些利用参数,然后扩展了一下:

最常用的 25 个 xss 参数:

Top 25 Cross-Site Scripting (XSS) Parameters for @trbughunters  
  
?q={payload}  
?s={payload}  
?search={payload}  
?id={payload}  
?lang={payload}  
?keyword={payload}  
?query={payload}  
?page={payload}  
?keywords={payload}  
?year={payload}  
?view={payload}  
?email={payload}  
?type={payload}  
?name={payload}  
?p={payload}  
?month={payload}  
?immagine={payload}  
?list_type={payload}  
?url={payload}  
?terms={payload}  
?categoryid={payload}  
?key={payload}  
?l={payload}  
?begindate={payload}  
?enddate={payload}

最常用的 25 个 ssrf 参数:

Top 25 Server-Side Request Forgery (SSRF) Parameters for @trbughunters  
  
?dest={target}  
?redirect={target}  
?uri={target}  
?path={target}  
?continue={target}  
?url={target}  
?window={target}  
?next={target}  
?data={target}  
?reference={target}  
?site={target}  
?html={target}  
?val={target}  
?validate={target}  
?domain={target}  
?callback={target}  
?return={target}  
?page={target}  
?feed={target}  
?host={target}  
?port={target}  
?to={target}  
?out={target}  
?view={target}  
?dir={target}

最常用的 25 个文件包含参数:

Top 25 Local File Inclusion (LFI) Parameters for @trbughunters  
  
?cat={payload}  
?dir={payload]  
?action={payload}  
?board={payload}  
?date={payload}  
?detail={payload}  
?file={payload}  
?download={payload}  
?path={payload}  
?folder={payload}  
?prefix={payload}  
?include={payload}  
?page={payload]  
?inc={payload}  
?locate={payload}  
?show={payload}  
?doc={payload}  
?site={payload}  
?type={payload}  
?view={payload}  
?content={payload}  
?document={payload}  
?layout={payload}  
?mod={payload}  
?conf={payload}

最常用的 25 个 sql 注入参数:

Top 25 SQL Injection Parameters for @trbughunters  
  
?id=  
?page=  
?dir=  
?search=  
?category=  
?file=  
?class=  
?url=  
?news=  
?item=  
?menu=  
?lang=  
?name=  
?ref=  
?title=  
?view=  
?topic=  
?thread=  
?type=  
?date=  
?form=  
?join=  
?main=  
?nav=  
?region=

最常用的 25 个命令执行的参数:

?cmd=  
?exec=  
?command=  
?execute=  
?ping=  
?query=  
?jump=  
?code=  
?reg=  
?do=  
?func=  
?arg=  
?option=  
?load=  
?process=  
?step=  
?read=  
?function=  
?req=  
?feature=  
?exe=  
?module=  
?payload=  
?run=  
?print=

最常用的 25 个开放重定向跳转的参数:

?next=  
?url=  
?target=  
?rurl=  
?dest=  
?destination=  
?redir=  
?redirect_uri?,  
?redirect_url=  
?redirect=  
?out=  
?view=  
?to=  
?image_url=  
?go=  
?return=  
?returnTo=  
?return_to=  
?checkout_url=  
?continue=  
?return_path=

如何应用#

实战中,可以用到这些参数,一般流程是通过收集到目标域名 /ip 的 url 的参数,然后从 url 中去过滤出对应的关键词,如http://www.xx.com/index.php?id=1,那么可以直接过滤出 id 参数,这样的参数可能存在 sql 注入漏洞。? 后接的参数有很大的概率无过滤导致被控。

用到的程序是 gf,https://github.com/tomnomnom/gf

1、go 语言编译 gf:

go get -u github.com/tomnomnom/gf

2、编译完后,就开始加载 json 的配置文件,如下面是 rce 的配置文件。


{  
    "flags": "-iE",  
     "patterns": [  
   
        "daemon=",  
        "upload=",  
        "dir=",  
        "download=",  
        "log=",  
        "ip=",  
        "cli=",  
        "cmd=",  
        "exec=",  
        "command=",  
        "execute=",  
        "ping=",  
        "query=",  
        "jump=",  
        "code=",  
        "reg=",  
        "do=",  
        "func=",  
        "arg=",  
        "option=",  
        "load=",  
        "process=",  
        "step=",  
        "read=",  
        "function",  
        "req=",  
        "feature=",  
        "exe=",  
        "module=",  
        "payload=",  
        "run=",  
        "print="  
]  
}

有了 json 文件,在测试 url 时就可以过滤出来,假如有个 url 是http://xxx.com/index.php?cmd=ls,那么我就可以通过包含 rce 参数的 json 脚本过滤出来。

% cat test.txt   
http://xxx.com/index.php?cmd=ls  
  
% cat test.txt | gf rce  
http://xxx.com/index.php?cmd=ls

3、下面就要配置让 gf 这个程序自动识别放在~/.gf 文件下面的 json 脚本,输入 gf 就能自动把 json 文件调用出来。如下图,列出来的都是 json 文件:

%E5%B8%B8%E8%A7%84%E6%B5%8B%E8%AF%95%E4%B8%ADurl%E5%8F%82%E6%95%B0%E6%B5%8B%E8%AF%95%20bfbbd4b8eb864ed3aa12113d45e5a6fd/Untitled%205.png

4、配置 gf 自动加载 json 文件,按 tab 键自动补全。

gf从 github 下载下来之后,有三个文件,分别对应是 bash、fish、zsh。

%E5%B8%B8%E8%A7%84%E6%B5%8B%E8%AF%95%E4%B8%ADurl%E5%8F%82%E6%95%B0%E6%B5%8B%E8%AF%95%20bfbbd4b8eb864ed3aa12113d45e5a6fd/Untitled%206.png

三个不同的文件对应于不同的 shell 环境,如我这里用到的 zsh,那么就需要配置~/.zshrc 配置文件,将下面的内容添加到~/.zshrc 文件:

autoload -Uz compinit
compinit
source /Users/xxx/macpentest/ 信息收集 /gf/gf-completion.zsh

%E5%B8%B8%E8%A7%84%E6%B5%8B%E8%AF%95%E4%B8%ADurl%E5%8F%82%E6%95%B0%E6%B5%8B%E8%AF%95%20bfbbd4b8eb864ed3aa12113d45e5a6fd/Untitled%207.png

通过上述设置基本设置完成,如果没有的话需要退出终端重新打开,我这里的环境用的是 zsh,如果你用的是 linux,那么可能是 bash 文件,那么你只要将上面的设置放到~/.bashrc 里面即可。

4、设置完成后,就可以把所有的 json 文件放到.gf 文件夹下,json 文件从下面的链接中下载,下载完后,拷贝至~/.gf 中。

  • GF Paterns For (ssrf,RCE,Lfi,sqli,ssti,idor,url redirection,debug_logic, interesting Subs) parameters grep

  • A wrapper around grep, to help you grep for things

mkdir .gf  
cp ~/Gf-Patterns/*.json ~/.gf  
cp ~/gf/examples/*.json ~/.gf

5、到此设置完毕,通过 gf 键就可以自动把加载的 json 文件显示出来。

如何收集 url#

收集 url 的方式其实很多中,通常是以批量的方式,先把所有的域名和子域名收集完成后,开始收集 url 中的参数。

下面的应用都可以用来收集 url:

扫描方式都很简单。

使用案例,借用 Gf-Patterns 上的案例:

cat subdomains.txt | waybackurls | sort -u >> waybackdata | gf ssrf | tee -a ssfrparams.txt
cat subdomains.txt | waybackurls | sort -u >> waybackdata | gf ssrf | tee -a ssfrparams.txt
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。