PHP script that detects if auth is required or not on Apache Splunk
I am currently trying to do a PHP script that detects automatically if Apache Splunk authentication is required or not but I'm having a hard time since HTTP code 303 is always coming back, even if auth is required or not.
Here is the script so far;
Code:
<?php
/**
* Apache Splunk script to verify if auth is required or not
* Original Author: Damian HARt
* Version : 1.0
*/
ini_set('memory_limit', '800M'); // Set ram limit
require('zebracurl.php');
if($argc === 3){
$file = $argv[1];
if(is_readable($file)){
$handle = fopen($file, 'r');
if ($handle){
$i = 0;
$curl = new Zebra_cURL();
$line_id = 0;
$total_lines = count_lines(__DIR__.DIRECTORY_SEPARATOR.$file);
$url_to_check = array();
$curl->threads = 100;
$curl->option(array(CURLOPT_TIMEOUT => 20));
echo 'Welcome in Apache Splunk detector'.PHP_EOL;
echo '[!] Total lines to parse in '.$file.': '.$total_lines.PHP_EOL;
echo '--------------------------------------------------------------------------------'.PHP_EOL;
while (($uri = fgets($handle)) !== false){
if (!empty($uri) ){
$url_to_check[] = trim($uri).':'.$argv[2].'/splunk/en-US/manager/search/apps/local';
if ($i === 99 || $line_id + 1 === $total_lines){
$curl->get($url_to_check, function($request){
if ($request->response[1] == CURLE_OK && $request->info['http_code'] === 200){
for ($_i = 0; $_i < count($request->headers['responses']); $_i++){
$header_array = array_change_key_case($request->headers['responses'][$_i], CASE_LOWER);
if (isset($header_array['Server'])){
file_put_contents('results.txt', $request->info['original_url'].PHP_EOL,FILE_APPEND | LOCK_EX);
echo '[+] '.$request->info['original_url'].PHP_EOL;
}
}
}
});
$i = 0;
$url_to_check = array();
}
}
$i++;
$line_id++;
}
} else {
echo setColor('An error was occurred on file opening '.$config['input_file'], $with_color ? 'danger' : '').PHP_EOL;
fclose($handle);
unset($curl);
die();
}
fclose($handle);
unset($curl);
}
}else { echo '[!] Usage: php splunk-detector.php LAN-IPs.txt 8000'; }
function count_lines($file){
$total_lines = 0;
if (file_exists($file)){
$handle = fopen($file, "r");
while (!feof($handle)){ if (fgets($handle) !== false) $total_lines += 1; }
fclose($handle);
} return $total_lines;
}
I am open to any solutions/suggestions as long as I can accomplish my goal.
While not technically a unix question, I was hoping for some help from you all-
I've got an Apache 1.3.x server, and I am using basic auth from the pam_auth module and winbind on the back of that. What I get is a relaly sleek authentication for my Windos domain users, however, as they are wont... (1 Reply)
I need help with a script which accepts one argument and goes through all the files under a directory and prints a list of possible duplicate files As its output, it prints zero or more lines, each one containing a space-separated list of filenames. All the files listed on one line have the same... (1 Reply)
I am new to PHP scripting.
I have a page with a checkbox and I'd like to make it required before submiting
Here is the code I have for displaying:
<tr>
<td align="center" colspan="4"><font size="2" color="#990000" face="Arial, Helvetica, sans-serif">
By checking this box you agree... (1 Reply)
Hi i am using Fedora 8 and it comes with precompiled rpm distribution of php. I want to configure my Apache web server for php . Did i need to recompile php.... or it can be configured accordingly for apache...
Thanks for any sort of help (1 Reply)
Hello, guys!
I have a web server that uses PHP as DSO. Do you know any tool that can help me monitoring the CPU usage for any domain/subdomain that is hosted on this server? (1 Reply)
i need to know all possible reasons for apache not able to execute a command on server side script.
I have a cgi script that calls a shell script .This shell script calls a perl script which has commnad in it.
Ths command is not getting executed from gui.The return status of shell script is 256.... (7 Replies)
#!/usr/bin/ksh
/bin/clear
LIST_USERS="user1|user2|user"
echo "Please enter the PASSWORD:"
stty -echo
read PASSWORD
stty echo
if ; then
echo "You have access!"
else
echo "ACCESS DENIED!"
exit
fi
This above script is not working when I auth more then one user w/in... (22 Replies)
Hi All,
I just ordered unmanaged server for my application testing. But when I try to install the application it is showing blank page.
Done know, what will be reason it showing blank page
This is my output
# rpm -q php
php-5.3.10-5.el5.art
# rpm -q mysql
mysql-5.0.95-1.el5_7.1... (2 Replies)
Discussion started by: ranjancom2000
2 Replies
LEARN ABOUT PHP
apache_note
APACHE_NOTE(3) 1 APACHE_NOTE(3)apache_note - Get and set apache request notesSYNOPSIS
string apache_note (string $note_name, [string $note_value = ""])
DESCRIPTION
This function is a wrapper for Apache's table_get and table_set. It edits the table of notes that exists during a request. The table's
purpose is to allow Apache modules to communicate.
The main use for apache_note(3) is to pass information from one module to another within the same request.
PARAMETERS
o $note_name
- The name of the note.
o $note_value
- The value of the note.
RETURN VALUES
If called with one argument, it returns the current value of note note_name. If called with two arguments, it sets the value of note
note_name to note_value and returns the previous value of note note_name. If the note cannot be retrieved, FALSE is returned.
EXAMPLES
Example #1
Passing information between PHP and Perl
<?php
apache_note('name', 'Fredrik Ekengren');
// Call perl script
virtual("/perl/some_script.pl");
$result = apache_note("resultdata");
?>
# Get Apache request object
my $r = Apache->request()->main();
# Get passed data
my $name = $r->notes('name');
# some processing
# Pass result back to PHP
$r->notes('resultdata', $result);
Example #2
Logging values in access.log
<?php
apache_note('sessionID', session_id());
?>
# "%{sessionID}n" can be used in the LogFormat directive
SEE ALSO virtual(3).
PHP Documentation Group APACHE_NOTE(3)