Bugku:web矛盾
繼續(xù)web學(xué)習(xí),打開(kāi)網(wǎng)址鏈接。
?
最開(kāi)心的事情莫過(guò)于直接看到PHP代碼因?yàn)椴挥萌プ?#xff1f;
?
?
可以看到意思是num不是numeric并且num需要等于1的時(shí)候才會(huì)展示出flag,這就是題目矛盾的來(lái)源。
?
所以要怎么樣才能用get的方式直接輸入1而不是1這個(gè)數(shù)字呢?
?
竟然有很多雞賊方法!!!!!!!!
?
比如:
?
這個(gè)網(wǎng)上所謂的科學(xué)計(jì)數(shù)法,可是想不通,1*e*0.1,它不等于1啊?!啊?!您在逗我,這樣都能行。
?
所以又嘗試了各種姿勢(shì),比如:
?
?
1xx,1xxx,1xxxxx,你XX?!
?
?
符號(hào):%00,這是經(jīng)典的文件上傳截?cái)?/strong>,截?cái)嗍呛苌衿娴臇|西。
例:filename=test.php%00.txt
常見(jiàn):
1.上傳時(shí)路徑可控,使用00截?cái)?#xff1b;
2.文件下載時(shí),00截?cái)嗬@過(guò)白名單檢查;
3.文件包含時(shí),00截?cái)嗪竺嫦拗?主要是本地包含時(shí));
4.其它與文件操作有關(guān)的地方都可能使用00截?cái)唷?/p>
小小題目,知識(shí)點(diǎn)是很多的。另一篇博主的說(shuō)法是%00是被服務(wù)器解碼成了0x00才發(fā)揮了截?cái)嘧饔谩?/p>
?
原理:系統(tǒng)在對(duì)文件名讀取時(shí),如果遇到0x00,就會(huì)認(rèn)為讀取已結(jié)束。
但要注意是文件的16進(jìn)制內(nèi)容里的00,而不是文件名中的00 !!!就是說(shuō)系統(tǒng)是按16進(jìn)制讀取文件(或者說(shuō)二進(jìn)制),遇到ascii碼為零的位置就停止,而這個(gè)ascii碼為零的位置在16進(jìn)制中是00,用0x開(kāi)頭表示16進(jìn)制,也就是所說(shuō)的0x00截?cái)唷?/p>
這個(gè)知識(shí)點(diǎn)還需要在后續(xù)文件截?cái)嘀欣^續(xù)實(shí)踐,任重而道遠(yuǎn)啊。
?
可是又發(fā)現(xiàn)了:
?
?
而且1'什么的都可以,所以......1后面加什么都可以!解碼出來(lái)都是1!
?
歡迎大家關(guān)注我的微信公眾號(hào),一起學(xué)習(xí),互相督促,一起玩耍呀!!!
?
?
總結(jié)
以上是生活随笔為你收集整理的Bugku:web矛盾的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 毕业设计-电商秒杀系统
- 下一篇: 计算机网络常见缩略词