知识点:目录扫描 代码审计
传参知识点补充:
后缀名为.phps
的文件出现在无法使用web浏览器查看php源代码的情况下,.phps文件
就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。其实,只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型。 它的MIME类型为:text/html, application/x-httpd-php-source, application/x-httpd-php3-source。
一、解题思路
step 1 审题+寻找漏洞
源代码和F12都没有问题,本题题目为PHP,所以还是要找到关键代码再进行代码审计
step 2 dirsearch进行目录扫描
看到 index.php
信息
step 3 传参寻找代码
传参 index.php
,网页并无反应,传参 index.phps
出现一段源代码
step 4 代码审计
大概意思是,id是admin,但是要进行ural编码才能成功上传。
因为GET本身有一次urldecode,加上代码中$_ GET[id] = urldecode($_GET[id]);语句又一次urldecode解码,因此有两次解码。所以我们要URL后加所以构造如下payload:
?id=%2561dmin
当传入参数id时,浏览器在后面会对非ASCII码的字符进行一次urlencode
然后在这段代码中运行时,会自动进行一次urldecode
在urldecode()函数中,再一次进行一次解码
urldecode(%2561)=%61
urldecode(%61)=a
即,当第一次比较时,实际是
if("admin"==="%61dmin")
而经过
$_GET[id] = urldecode($_GET[id]);
第二次比较是:
if("admin" == "admin");
二、URLencode
backspace | 8% | A | 41% | a | 61% | § | %A7 | Õ | %D5 |
---|---|---|---|---|---|---|---|---|---|
tab | 9% | B | 42% | b | 62% | « | %AB | Ö | %D6 |
linefeed | %0A | C | 43% | c | 63% | ¬ | %AC | Ø | %D8 |
creturn | %0D | D | 44% | d | 64% | ¯ | %AD | Ù | %D9 |
space | 20% | E | 45% | e | 65% | º | %B0 | Ú | %DA |
! | 21% | F | 46% | f | 66% | ± | %B1 | Û | %DB |
" | 22% | G | 47% | g | 67% | ª | %B2 | Ü | %DC |
# | 23% | H | 48% | h | 68% | , | %B4 | Ý | %DD |
$ | 24% | I | 49% | i | 69% | µ | %B5 | Þ | %DE |
% | 25% | J | %4A | j | %6A | » | %BB | ß | %DF |
& | 26% | K | %4B | k | %6B | ¼ | %BC | à | %E0 |
' | 27% | L | %4C | l | %6C | ½ | %BD | á | %E1 |
( | 28% | M | %4D | m | %6D | ¿ | %BF | â | %E2 |
) | 29% | N | %4E | n | %6E | À | %C0 | ã | %E3 |
* | %2A | O | %4F | o | %6F | Á | %C1 | ä | %E4 |
+ | %2B | P | 50% | p | 70% | Â | %C2 | å | %E5 |
, | %2C | Q | 51% | q | 71% | Ã | %C3 | æ | %E6 |
- | %2D | R | 52% | r | 72% | Ä | %C4 | ç | %E7 |
. | %2E | S | 53% | s | 73% | Å | %C5 | è | %E8 |
/ | %2F | T | 54% | t | 74% | Æ | %C6 | é | %E9 |
0 | 30% | U | 55% | u | 75% | Ç | %C7 | ê | %EA |
1 | 31% | V | 56% | v | 76% | È | %C8 | ë | %EB |
2 | 32% | W | 57% | w | 77% | É | %C9 | ì | %EC |
3 | 33% | X | 58% | x | 78% | Ê | %CA | í | %ED |
4 | 34% | Y | 59% | y | 79% | Ë | %CB | î | %EE |
5 | 35% | Z | %5A | z | %7A | Ì | %CC | ï | %EF |
6 | 36% | ð | %F0 | ||||||
7 | 37% | ? | %3F | { | %7B | Í | %CD | ñ | %F1 |
8 | 38% | @ | 40% | | | %7C | Î | %CE | ò | %F2 |
9 | 39% | [ | %5B | } | %7D | Ï | %CF | ó | %F3 |
: | %3A | \ | %5C | ~ | %7E | Ð | %D0 | ô | %F4 |
; | %3B | ] | %5D | ¢ | %A2 | Ñ | %D1 | õ | %F5 |
< | %3C | ^ | %5E | £ | %A3 | Ò | %D2 | ö | %F6 |
= | %3D | _ | %5F | ¥ | %A5 | Ó | %D3 | ÷ | %F7 |
> | %3E | ` | 60% | | | %A6 | Ô | %D4 | ø | %F8 |
ù | %F9 |