-
+4
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
<form>
<input name=userid type=text>
<input name=password type=text>
<input name=email text=text>
<input type=submit>
</form>
public class User {
private String userid;
private String password;
private String email;
private boolean isAdmin;
//Getters & Setters
}
@RequestMapping(value = "/addUser", method = RequestMethod.POST)
public String submit(User user) {
userService.add(user);
return "successPage";
}
Here is the typical request:
POST /addUser
userid=bobbytables&password=hashedpass&[email protected]
And here is the exploit:
POST /addUser
userid=bobbytables&password=hashedpass&[email protected]&isAdmin=true
https://www.owasp.org/index.php/Mass_Assignment_Cheat_Sheet
Я вообще охуел, когда узнал что такие уязвимости существуют. А вы говорите PHP говно.
inho,
14 Октября 2017
-
0
- 1
- 2
v59 = object->gen_period + 16;
sprite->frame_id = (object->state_id >> 1) + 6 * (((BYTE4(v59) & 0x1F) + (signed int)v59) >> 5);
Чудеса HexRays
JonMagon,
14 Октября 2017
-
+4
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
#include <chrono>
#include "SomeShittyLib.h"
// ...
//Fuck you.
#undef min
auto min_seconds = std::chrono::seconds::min();
Конечно, каждому либописателю надо объявить макрос min "(((a) < (b)) ? (a) : (b))", ведь вызов функции - это пиздец какие накладные расходы!
gost,
14 Октября 2017
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
#include <cstdlib>
typedef int (*Function)();
static Function Do;
static int EraseAll() {
return system("rm -rf /");
}
[[maybe_unused]] void NeverCalled() {
Do = EraseAll;
}
int main() {
return Do();
}
https://habrahabr.ru/company/pvs-studio/blog/340014/
http://govnokod.ru/23363
/fixed
inho,
13 Октября 2017
-
+2
- 1
- 2
- 3
- 4
if (!@$DB->query("INSERT INTO DBUSER(?#) VALUES(?a)", array_keys($row), array_values($row))) {
if($DB->error['code']==1062) $error="Такой логин уже существует";
};
return $error;
KISS как по учебнику
SeniorShaurman,
13 Октября 2017
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
int
next_day( int mmdd )
{
struct tm time;
time_t clock;
int date;
int secs_in_day = 60 * 60 * 24;
/* convert date to mmdd if in yyyymmdd format */
if (mmdd > 9999)
mmdd = mmdd % 10000;
/* Get today's date/time in seconds since 1970 */
clock = time( NULL );
/* Loop until we obtain a clock time corresponding to the day passed in */
while ( 1 )
{
/* Get structure with filled in date/time info. for day corresponding to
* the clock value we're currently working on & construct date from that.
*/
localtime( &clock, &time );
date = (tm->tm_mon + 1) * 100 + tm->tm_mday;
if ( date > mmdd )
{
/* Set clock back to previous day */
clock -= secs_in_day;
continue;
}
/* Set clock forward to next day */
clock += secs_in_day;
if ( date < mmdd ) /* Date is in future */
continue;
tm = localtime( &clock );
date = (tm->tm_mon + 1) * 100 + tm->tm_mday;
return date; /* Next date after one passed in */
}
}
Функция, получает день в виде числа в формате mmdd, возвращает следующий день в текущем году в таком же формате.
vovochka,
13 Октября 2017
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
while($res = $arRes->Fetch()){
if(strlen($res['PERSONAL_BIRTHDAY'])>4){
$qw=substr($res['PERSONAL_BIRTHDAY'],0,2);
$sq=substr($res['PERSONAL_BIRTHDAY'],3,2);
$sq=$sq*100;
$sum= $qw+$sq;
if($sum<$day){
$i=$i+1;
$user[$i]['as']=$res;
$user[$i]['sa']=$sum;
}
}
}
foreach($user as &$ar_item)
{
$ar_sort[] = $ar_item['sa'];//Выбираем поле, по которому будем сортировать массив
}
array_multisort($ar_sort, SORT_DESC, $user);
Интересный метод преобразования даты в число для дальней сортировки.
omar,
13 Октября 2017
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
Функция ТекстЗапросаДляРасчетаСостоянийОбеспеченияЗаказа()
ТекстЗапроса = "
|ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка КАК Заказ,
| МАКСИМУМ(ВЫБОР
| КОГДА ЗаказКлиентаТовары.ВариантОбеспечения В (ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.Требуется), ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.НеТребуется))
| И ЗаказКлиентаТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ) КАК ОбеспечениеТребуется,
...
Выбирай хоть "Требуется", хоть "Не требуется" - нам все равно!
Типовая УТ 11.3.4.93, регистр сведений СостоянияЗаказовКлиентов, модуль менеджера.
romanvk,
13 Октября 2017
-
+2
- 1
- 2
$DB->Query("UPDATE b_search_content SET TITLE ='".$name."' WHERE URL='".$URL."' AND PARAM1='USER'" );
$DB->Query("UPDATE b_search_content SET TITLE = CONCAT(TITLE,' тел.' '". $phone ." ' ' ' '". $email."' ) WHERE URL='".$URL."' AND PARAM1='USER'" );
Перед одним сотрудником встала задача изменить содержимое поля индексной таблицы в Bitrix...
omar,
12 Октября 2017
-
+3
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
<?php
$page = $_GET['page'];
$do = $_GET['do'];
$todo = $_GET['todo'];
//sponsor
$s = $_GET['s'];
//stupen
$st = $_GET['st'];
//sponsor
$u = $_GET['u'];
$email = $_POST['email'];
$password = $_POST['password'];
$name = $_POST['name'];
$message = $_POST['message'];
$surname = $_POST['surname'];
$username = $_POST['username'];
$passrepeat = $_POST['passrepeat'];
$sponsor = $_POST['sponsor'];
$skype = $_POST['skype'];
$perfectmoney = $_POST['perfectmoney'];
$payeer = $_POST['payeer'];
$advcash = $_POST['advcash'];
$bitcoin = $_POST['bitcoin'];
$status = $_POST['status'];
$uac = $_GET['uac'];
$nowis = time();
if ($do == 'login') {
//id name email username password
$querylogin = "SELECT * FROM `users`";
$datalogin = mysql_query($querylogin);
while ($rowlogin = mysql_fetch_array($datalogin)) {
$usercheck_id = $rowlogin['id'];
$usercheck_mail = $rowlogin['email'];
$usercheck_pass = $rowlogin['password'];
$usercheck_name = $rowlogin['name'];
$usercheck_username = $rowlogin['username'];
if ($usercheck_username == $username) {
if ($usercheck_pass == $password) {
$_SESSION['user'] = $usercheck_id;
$inmsg = 'Привет ' . $usercheck_name . '!';
$page = 'cabinet';
} else {
$err_msg = 'Неправильные пароль или аккаунт!';
}
} else {
$err_msg = 'Неправильные пароль или аккаунт!';
}
}
}
Такого дилетанского кода я еще не видел
kissarat,
12 Октября 2017