Skip to content

Commit

Permalink
Added some fun privledge escalation!
Browse files Browse the repository at this point in the history
  • Loading branch information
Katie Paxton-Fear authored and Katie Paxton-Fear committed Jun 7, 2020
1 parent 486dea6 commit 9bc855d
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 5 deletions.
47 changes: 47 additions & 0 deletions app/Http/Controllers/AdminController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

namespace App\Http\Controllers;

use App\Grade;
use App\Role;
use App\UniClass;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class AdminController extends Controller
{
public function index()
{
return "secret ;)";
}

public function delete()
{
if(Auth::user()->role_id == 1) {
DB::table('users')->where('id', '<>', Auth::user()->id)->delete();
UniClass::truncate();
Grade::truncate();

return "deleted everything ;)";
} else {

return "permission required :(";
}

}
public function repopulate()
{
if(Auth::user()->role_id == 1) {
$dbseed = new \DatabaseSeeder();
$dbseed->run();

return "database repopulated";
} else {

return "permission required :(";
}

}
}
47 changes: 47 additions & 0 deletions app/Http/Controllers/RoleController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?php

namespace App\Http\Controllers;

use App\Role;
use Illuminate\Http\Request;

class RoleController extends Controller
{

private $model = Role::class;

public function __construct()
{
$this->model = \App::make($this->model);
}

function index()
{
return $this->model::all();
}

function store(Request $request)
{
return $this->model->create($request->input());
}

function show($id)
{
return $this->model->find($id);
}

function update(Request $request, $id)
{

if ($model = $this->model->find($id)) {
$model->update($request->input());
return $model;
}
return json_encode('Resource: ' . $id . ' with presented ID does not exist.');
}

function destroy($id)
{
return $this->model->destroy($id);
}
}
2 changes: 1 addition & 1 deletion app/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class User extends Authenticatable
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
'name', 'email', 'password', 'role_id'
];

/**
Expand Down
4 changes: 2 additions & 2 deletions database/seeds/DatabaseSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ class DatabaseSeeder extends Seeder
public function run()
{
//$this->call(RoleSeeder::class);
//$this->call(UserSeeder::class);
//$this->call(UniClassSeeder::class);
$this->call(UserSeeder::class);
$this->call(UniClassSeeder::class);
$this->call(GradesSeeder::class);
}
}
4 changes: 2 additions & 2 deletions database/seeds/UniClassSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ public function run()
$class = new \App\UniClass();
$class->name = $classes->get($i);
$class->description = $faker->bs;
$class->teacher()->associate(\App\User::find(7));
$class->teacher()->associate(\App\User::where('role_id', '=', 3)->first());
$class->save();

// stop the teacher and it guy beign added
$class->users()->saveMany(\App\User::where('id', '<', 6)->get());
$class->users()->saveMany(\App\User::where('role_id', '=', 2)->get());
$class->save();
}
}
Expand Down
6 changes: 6 additions & 0 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,10 @@
Route::resource('grades', 'GradeController', ['except' => ['edit', 'create']]);
Route::resource('users', 'UserController', ['except' => ['edit', 'create']]);
Route::resource('classes', 'ClassController', ['except' => ['edit', 'create']]);
Route::resource('roles', 'RoleController', ['except' => ['edit', 'create']]);
Route::group(['as'=>'admin.', 'prefix'=>'admin', 'middleware' => 'auth'], function () {
Route::get('/', 'AdminController@index')->name('home');
Route::get('delete', 'AdminController@delete')->name('delete');
Route::get('restore', 'AdminController@repopulate')->name('repop');
});
});

0 comments on commit 9bc855d

Please sign in to comment.