50 lines
867 B
Markdown
50 lines
867 B
Markdown
|
# Object Relational Model (ORM)
|
||
|
|
||
|
Direct user input through the ORM may contain vulnerabilities we can exploit.
|
||
|
There are vulnerabilities similar to raw SQL queries, when not validating and
|
||
|
sanitizing properly.
|
||
|
|
||
|
During static code analysis, check the following vulnerable methods.
|
||
|
|
||
|
The payload is essentially the same as in pure SQL injections.
|
||
|
|
||
|
**Python Django**
|
||
|
|
||
|
```python
|
||
|
extra()
|
||
|
raw ()
|
||
|
```
|
||
|
|
||
|
**Node.js Sequelize**
|
||
|
|
||
|
```javascript
|
||
|
sequelize.query()
|
||
|
```
|
||
|
|
||
|
**PHP Eloquent ORM**
|
||
|
|
||
|
```PHP
|
||
|
whereRaw()
|
||
|
DB::raw()
|
||
|
```
|
||
|
|
||
|
**Ruby on Rails Active Record**
|
||
|
|
||
|
```ruby
|
||
|
where("name = '#{input}'")
|
||
|
```
|
||
|
|
||
|
**Java Spring Hibernate**
|
||
|
|
||
|
```Java
|
||
|
createQuery()
|
||
|
```
|
||
|
|
||
|
## Identify the Framework in Use
|
||
|
|
||
|
Check the website's cookies and HTTP headers. Review the page source and see if
|
||
|
you can find indicators like links and version numbers. Look for error messages
|
||
|
sent as a response to the queries.
|
||
|
|
||
|
|