URL编码
关于URL编码的详细描述,可以参考阮一峰的这篇文章
URL编码的本质
其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“/”,它的ascii码是92,92的十六进制是5c,所以“/”的url编码就是/。那么汉字的url编码呢?很简单,看例子:“胡”的ascii码是-17670,十六进制是BAFA,url编码是“%BA%FA”。 (参考出处)
URL编码应用
二次编码
在CTF比赛中,有些程序逻辑设计的不能含有'..'
以及'.'
,这样的话如果想通过注入手段
,获得任意路径就存在困难,比如构造'../../../../flag'
,但是可以通过URL二次编码,来绕过:
一次编码:%2e%2e%2f%2e%2e%2f%2e%2e%2f%2e%2e%2f%66%6c%61%67
二次编码:%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%36%36%25%36%63%25%36%31%25%36%37
每次编码都是按照ascii码表来进行,即%+ascii码
来编码每一个字符。关于ascii码表,可以自行查看。
SQL注入
本质还是通过URL编码来绕过,详细的可以了解这篇文章