Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python学习记录(十一):乌云忽略漏洞爬虫&多线程 #12

Open
PyxYuYu opened this issue Mar 12, 2016 · 0 comments
Open

Comments

@PyxYuYu
Copy link
Owner

PyxYuYu commented Mar 12, 2016

Great minds have purpose, others have wishes.

0x01 Wooyun

  • 文件上传导致任意代码执行
    • 后台manage目录下存在upload接口,可以上传文件,本地js判断后缀名,抓包修改绕过
  • 未授权jmx-console命令执行
0x02 Wooyun爬虫

  • FirebugHTML 选项下面可以选择 显示注释
  • 乌云忽略漏洞爬虫
    • 多线程
      • 首先需要将所有的url放入到一个Queue
    • 因为Queue是安全的,所有无需用Lock
    • 全局变量
      • 应该尽量避免使用全局变量,不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可以预知性。
      • 全局变量的使用有两种方法:
        • 在函数/类内 global 声明
      • 在另一个单独的模块中定义,import 模块 采用模块名.参数名的方法调用
    • Thread 线程
      • joinsetDaemon
        • join:在主线程A(也就是主程序)中,创建了子线程B(也就是分出去工作的线程),调用了B.join(),那么主线程A会被阻塞,不会往下执行,一直等待子线程B工作完成后,主线程A才可以接着往下执行
      • join([timeout]) timeout 代表线程运行的最大时间,如果超过这个时间,不管子线程有没有执行完毕都会被收回,主线程继续往下执行
      • 如果有多个子线程需要执行,那么可以采用for循环调用子线程的join方法
      • setDaemon:设置主线程为子线程的守护进程,也就是B.setDaemon(True),就是设置了A是B的守护进程,主线程A执行完毕时,不管子线程B是否执行完毕都和主线程A一起退出,基本是和join 相反的,设置守护进程需要在start()方法前
    • Queue 队列,Queue.Queue() 是一个类对象,其实也是锁的安全表示形式
      • jointask_done
        • join: 在主线程中设置q.join(),代表阻塞主线程,直到队列中的任务全部被执行完成,主线程才可以继续执行下面的内容,但是主程序如何得知队列中的任务已经被全部完成呢?这里就需要 task_done
      • task_done: 说明队列get出来的这个任务已经被完成,队列中任务数量减少一,当队列q.qsize()为0的时候,就表明队列中任务全部被完成了,task_done 单独使用的时候(后面不带q.join),仅表示完成了队列中的一个任务
      • Python 2.X版本的 QueueBUG
    • socket.error:[Errno 10054] 远程主机强迫关闭了一个现有的连接
      • 多线程对同一个网站进行大量使用urlopen操作时,被认定攻击行为,不在允许下载,导致urlopen()后,request.read()一直卡死,最后抛出10054
    • 爬虫在单步调试的时候,返回正确,但是在运行的时候返回了错误的信息
      • 因为响应时间的问题,响应时间太短了,无法获得正确的数据就会导致错误的发生,所以可能需要加个响应时间
0x03 一天总结

  • 乌云忽略漏洞查询还有2个bug,第一个会搜索到评论区的忽略,第二就是子线程可能不会关闭,网上有说是Queue的BUG,姑且就认为是个BUG吧,具体功能已经实现,可以自定义开始页面,截至页面,线程数,不过任然可以继续优化
  • 上面的爬虫就告一段落吧,用时3天,明天继续乌云的爬虫,可搜索的爬虫

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant